sysdate,oracle数据库sysdate数据类型的查询
sysdate,oracle数据库sysdate数据类型的查询详细介绍
本文目录一览: sql中sysdate是什么类型的
1,sysdate就是系统当前时间,也是date类型的
2,
1
select * from 表名 where to_char(slrq,'yyyy-mm-dd') between '2014-07-01' and '2014-07-23'
1
select * from 表名 where to_char(slrq,'yyyy-mm-dd hh24:mi:ss') between '2014-07-01 00:00:00' and '2014-07-23 23:59:59'
以上两种写法第一个只针对日期,第二个针对日期+时间
目测你是用oracle
sql常用sysdate整理
select sysdate,add_months(sysdate ,1) from dual;--加一个月
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd,HH24:MI:SS') from dual;
--第几
select sysdate,to_char(sysdate,'w') from dual;--当前是本月的第几周
select sysdate,to_char(sysdate,'d')-1 shunxu from dual;--当前是本周的第几天,!!周天的第一天!!
select sysdate,to_char(sysdate,'ddd') from dual;--第几天dd、月mm、时hh、秒ss、ddd年的第几天
select to_char(sysdate,'day')from dual; --打印“星期几”的形式
select to_char(sysdate,'month')from dual;--打印“几月”的形式
select to_char(sysdate,'second')from dual;--打印“多少年”的形式
--截断? trunc
select trunc(sysdate) from dual; -- 得到当天凌晨0点0分0秒的日期
? select trunc(sysdate) from dual;--2017/2/13,返回当前时间
? select trunc(sysdate,'yy') from dual;--2017/1/1,返回当年第一天
? select trunc(sysdate,'mm') from dual;--2017/2/1,返回当月的第一天
? select trunc(sysdate,'d') from dual;--2017/2/12,返回当前星期的第一天,即星期天
? select trunc(sysdate,'dd') from dual;--2017/2/13,返回当前日期,今天是2017/2/13
? select trunc(sysdate ,'HH24') from dual;--2017/2/13 15:00:00,返回本小时的开始时间
? select trunc(sysdate ,'MI') from dual;--2017/2/13 15:13:00,返回本分钟的开始时间
? select trunc(sysdate,'yyyy')from dual;--本年的第一天?
? select trunc(sysdate,'mm') from dual; --本月的第一天
? select trunc(sysdate,'hh') from dual;--这个小时的第一分钟
? select trunc(sysdate,'mi') from dual;--这个分钟的第一秒
select trunc(sysdate,'yyyy')+ rn -1 date0
from
(select rownum rn from all_objects
where rownum<70);
NOW() 和 SYSDATE() 的区别
SQL语句中的now()和sysdate()都可以获得系统时间,但是两者有何区别?
简而言之: NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间。
NOW()取自mysql的一个变量”TIMESTAMP”,而这个变量在语句开始执行的时候就设定好了,因此在整个语句执行过程中都不会变化。
执行下面这个例子就明白了:
先查询了NOW()和SYSDATE(),然后sleep了3秒,再查询NOW()和SYSDATE(),结果如下:
NOW()前后分别显示:2019-02-25 14:18:29和2019-02-25 14:18:29
SYSDATE()前后分别显示:2019-02-25 14:18:29和2019-02-25 14:18:32
oracle中sysdate - 12460的意思
在Oracle中,sysdate - 1/6、sysdate - 1/24/60等,表示从当前时间往前推若干时间,若干时间的计算方式如下:1.sysdate-A表示往前推A天
2.如果是A/B类型,则表示往前推n小时,A表示天数,B表示小时,n = A×24/B。例如:sysdate - 1/6,此处A = 1;B = 6。n = 1×24/6 = 4即 select sysdate - 1/6 from dual 得出的时间是当前时间往前推4小时3.如果是A/B/C类型。则表示往前推m分钟,A表示天数,B表示小时,C表示分钟。m的算法: 先计算 A×24/B 得到需要往前推多少小时,假设n = A×24/B。那么 m = n×60/C。(1小时=60分钟,所以n小时要乘以60,再去除以C,得到往前推的分钟数)即 select sysdate - 1/24/60 from dual 得出的时间是当前时间往前推1分钟
oracle数据库sysdate数据类型的查询
数据类型是date,
sysdate 是一个常量,或者说函数? 返回当前日期时间
你可以用下面两种方法来匹配:
trunc(datecol) = to_date('2014-04-01','yyyy-mm-dd')
或者
to_char(datecol,'yyyy-mm-dd') = '2014-04-01'
select * from table where to_char(datecolumn, 'yyyy-mm-dd')='2014-04-01'
table是表名
datecolumn是日期型字段名
oracle中,sysdate的查询结果是属于date型数据,但可以通过to_char函数转成字符型。
如,要查询当前的日期时间,这种属于返回日期型数据:
select sysdate from dual;查询结果:
如果要转成字符型数据,用如下语句:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;查询结果:
MySQL中时间函数NOW和SYSDATE的区别
MySQL获得当前日期+时间(date + time)函数sysdate() :
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。
如下实例:
mysql> select now(), sleep(3), now();
+---------------------+----------+---------------------+
| now() | sleep(3) | now() |
+---------------------+----------+---------------------+
| 2015-04-12 16:00:00 | 0 | 2015-04-12 16:00:00 |
+---------------------+----------+---------------------+
mysql> select sysdate(), sleep(3), sysdate();
+---------------------+----------+---------------------+
| sysdate() | sleep(3) | sysdate() |
+---------------------+----------+---------------------+
| 2015-04-12 16:01:16 | 0 | 2015-04-12 16:01:19 |
+---------------------+----------+---------------------+
可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。MySQL Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。
sysdate() 日期时间函数,一般情况下很少用到。
select from drv_driver t where t.csrq)sysdate-0.1谁见过这样的sql语句,它的意思是啥。希望高手能解答
sysdate是系统当前时间
select * from drv_driver t where t.csrq>sysdate-0.1 解释就是 选择drv_driver(别名为t)表中字段csrq的值大于当前时间-0.1的行,显示字段为所有列
SELECT SYSDATE-0.1 FROM 表
2012-7-16 6:49:21
SELECT SYSDATE FROM 表
2012-7-16 9:13:57
从表drv_driver中提取字段csrq的日期值是最近0.1天(即2.4小时)的记录。
sysdate-0.1就是系统当前时间减去0.1天(2.4h)
sysdate的加减运算一般都是以天为单位的
sysdate是oracle里表示当前时间的意思
sysdate+/-1是当前时间加/减一天,sysdate+/-(1/48)就是加/减 半个小时,sysdate+/-0.1就是加/减2个多小时吧。
"t"是drv_driver表的别名,使用时性质一样,主要能防止相同字段。where后面的意思就是表drv_driver的csrq字段值要大于当前时间-2个多小时
求教ORACLE中sysdate和current_timestamp的区别?
sysdate返回的是服务器的当前时间;
sql:select sysdate from dual;此时查询的是日期的类型。
current_timestamp:它和设置的时区是有一定关系的。返回的日期和时间会根据时区转换过的。
sql:
alter session set time_zone='UTC';//设置时区
sql:SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS'), CURRENT_TIMESTAMP FROM DUAL;
查询结果:20150705 13:46:10 2015-07-05 13:46:10.120123。
sysdate是服务器当前日期时间,sysdate不支持毫秒,timestamp好像是9i才有的,支持毫秒
SYS@orcl> select sysdate,current_date,systimestamp,current_timestamp from dual;
SYSDATE CURRENT_DATE SYSTIMESTAMP CURRENT_TIMESTAMP
-------------- -------------- -------------------- --------------------
24-3月 -09 24-3月 -09 24-3月 -09 12.32.05. 24-3月 -09 12.32.05.
750000 下午 +08:00 750000 下午 +08:00
CURRENT_TIMESTAMP 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的。
sysdate返回的是系统的时间。
alter session set time_zone='UTC';
select to_char(sysdate,'YYYYMMDD HH24:MI:SS'), CURRENT_TIMESTAMP ,TZ_OFFSET(sessiontimezone) from dual;
20090324 13:46:10 2009-03-24 04:46:10.501474 +00:00 +00:00
“trunc(sysdate)”的含义是什么?
ORACLE中TRUNC是截取的函数用在日期类型上,就是截取到日或时间。
以下为具体例子。
SELECT TRUNC(SYSDATE) FROM DUAL;默认是截取系统日期到日,得到2012-12-19比如值为"2012-12-19 14:30:50"的日期变量TRUNC(SYSDATE)得到 2012-12-19 , 和TRUNC(SYSDATE,'DD')一样TRUNC(SYSDATE,'YYYY'),得到2012-1-1TRUNC(SYSDATE,'MM'),得到2012-12-1TRUNC(SYSDATE,'DD'),得到2012-12-19TRUNC(SYSDATE,'HH')或HH24,得到2012-12-19 14:00:00TRUNC(SYSDATE,'MI'),得到2012-12-19 14:30:00TRUNC(SYSDATE,'SS'),是会报错的,直接用SYSDATE不用TRUNC。
参考资料
CSDN:http://blog.csdn.net/bestcxx/article/details/51646017
oracle数据库的sysdate类型怎么转换为字符串
oracle的时间都是要毫秒的。要转成JAVA的得先像一楼那样转成字符串,再用fomat转回JAVA的时间
ORACLE支持带to_char函数的sql语句,读出时可以用to_char(date字段名,'YYYY-MM-DD HH24:MI:SS')这样得到'2010-01-15 18:50:30'格式的时间字符串,你也可以随意用各种组合来得到你需要的格式字符串,例如'YYYY/MM/DD HH24:MI'就得到了'2010/01/15 18:50'
通过:TO_CHAR(sysdate,'yyyy-MM-dd ’)函数实现即可。
sql:select TO_CHAR(sysdate,'yyyy-MM-dd ') from dual;结果:“2015-05-16”.
扩展:TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS')可以根据实际需要修改后面的日期展示形式,常用的就是:
TO_CHAR(sysdate,'yyyy-MM-dd ’)(日期型)和TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS')(日期时间型)。
建议这么写 to_date('2013-04-16 21:56:00', 'yyyy-mm-dd hh24:mi:ss')
select to_char(sysdate,’yyyy-mm-dd ’) from daul;
利用函数TO_CHAR(sysdate,'yyyy-MM-dd ’)可以实现。sql:select TO_CHAR(sysdate,'yyyy-MM-dd ') from dual;结果:“2015-05-16”.扩展:TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS')可以根据实际需要修改后面的日期展示形式,常用的就是:TO_CHAR(sysdate,'yyyy-MM-dd ’)(日期型)和TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS')(日期时间型)。