一、当前时间
在sql中直接使用sysdate函数,表示当前时间。
那么,利用当前时间,我们可以获取到当前时间前后指定的时间信息。
1.1 加减法
select sysdate-1 from dual;--2015-05-20 14:54:10 select sysdate+1 from dual;--2015-05-22 14:53:40
select sysdate-1/24 from dual;--查询一个小时前的时间
select sysdate-1/2 from dual;--查询半天前的时间
1.2 trunc('xx')函数
select trunc(sysdate) from dual; --2015-05-21 00:00:00 select trunc(sysdate)-1 from dual; --2015-05-20 00:00:00 select trunc(sysdate,'yyyy') from dual;--2015-01-01 00:00:00 select trunc(sysdate,'MM') from dual; --2015-05-01 00:00:00 select trunc(sysdate,'dd') from dual; --2015-05-21 00:00:00 select trunc(sysdate,'hh') from dual; --2015-05-21 14:00:00 select trunc(sysdate,'mi') from dual; --2015-05-21 14:59:00
trunc()函数本身就是截取函数,用在日期上,可以理解为按照指定的最小单位,获取其下一级单位的最小时间。
trunc(sysdate);默认截取的是“小时”,即:当天最小的小时值;
trunc(sysdate)-1;可以用来做加减;
1.3 to_char('xx')函数
取前一天的时间:
select to_char(sysdate-1,'yyyy-MM-dd') from dual;--2015-05-20
其他:
当前时间:2015-05-21 15:19 select to_char(sysdate-1,'yyyy-MM-dd') from dual;--2015-05-20 select to_char(sysdate,'yyyy') from dual;--2015 select to_char(sysdate,'yyy') from dual;--015 select to_char(sysdate,'yy') from dual;--15 select to_char(sysdate,'y') from dual;--5 select to_char(sysdate,'MM') from dual;--05 select to_char(sysdate,'M') from dual;--无法识别 select to_char(sysdate,'dd') from dual;--21 select to_char(sysdate,'d') from dual;--一周中的第几天,周日是第一天 select to_char(sysdate,'hh24') from dual;--15 select to_char(sysdate,'h24') from dual;--无法识别 select to_char(sysdate,'mi') from dual;--19min select to_char(sysdate,'ss') from dual;--22s select to_char(sysdate,'s') from dual;--无法识别
更多使用参照:to_char详细使用