【oracle笔记】查询指定的时间

在一个指定的日期上加/减年月日进行查询,

select sysdate +/-  interval 'n' 日期单位 from dual;

interval告诉系统相隔的时间数,日期单位有YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

如查询前一年的时间

select sysdate - interval '3' year from dual;



另外一种方法

select sysdate+/-n from dual;       -- 查询 默认n的单位为天,如果向查询之前的时间 n可以为负数

select add_months(sysdate,n) from dual;         -- n单位为月,若n为正小数则被截取为小于该数的最大整数,而负数则被截取为大于该数的最小整数

select add_months(sysdate,12*n) from dual;


例:add_months(to_date('29-Feb-96','d-mon-yyyy'),-12.99)   返回  28-Feb-95

注:上例中29调整为28,是因为96年二月份最后一天是29号,而95年二月份最后一天是28号。

 

add_months(to_date('15-Nov-1961','d-mon-yyyy'),1)  返回   15-Dec-1961

 

add_months(to_date('30-Nov-1961','d-mon-yyyy'),1)  返回   31-Dec-1961

注:从30调整为31,为了保持都是对应最后一天。

 

add_months(to_date('31-Jan-1999','d-mon-yyyy'),1)  返回   28-Feb-1999

注:函数将31日调为28日,以使结果对应新一月的最后一天,因1999年2月只有28天。


你可能感兴趣的:(【oracle笔记】查询指定的时间)