oracle时间处理

一、当前时间

  在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详细使用

原文地址:https://www.cnblogs.com/brolanda/p/4519855.html