INTERVAL c1 set1
变动日期时间数值
c1 为数字字符串或日期时间字符串
set1 为日期参数
set1 参数取值如下:
second 秒
minute 分钟
hour 小时
DAY 天
MONTH 月份
YEAR 年份
hour to second 加指定小时到秒
minute to second 加指定分钟到秒
hour to minute 加指定小时到分钟
day to minute 加指定天数到分钟
日期时间格式的数值,前面多个+号。以天或天更小单位时可用数值表达式借用,如1表示1天,1/24表示1小时,1/24/60表示1分钟
下面是 INTERVAL 使用示例,如下:
-- 加1秒(1/24/60/60) SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '1' second), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:16:55 22/05/08 00:00:01 -- 加1分钟(1/24/60) SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '1' minute), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:17:28 22/05/08 00:01:00 -- 加1小时(1/24) SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '1' hour), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:18:11 22/05/08 01:00:00 -- 加1天(1) SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(INTERVAL '1' DAY), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:18:29 22/05/09 00:00:00 -- 加1月 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(INTERVAL '1' MONTH), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:18:45 22/06/08 00:00:00 -- 加1年 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(INTERVAL '1' YEAR), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:19:12 23/05/08 00:00:00 -- 加指定小时到秒 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '01:02:03' hour to second), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:19:35 22/05/08 01:02:03 -- 加指定分钟到秒 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '01:02' minute to second), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:19:59 22/05/08 00:01:02 -- 加指定小时到分钟 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '01:02' hour to minute), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:20:16 22/05/08 01:02:00 -- 加指定天数到分钟 SQL> select TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') curr, TO_CHAR(trunc(sysdate)+(interval '2 01:02' day to minute), 'YY/MM/DD HH24:MI:SS') VAL from dual; CURR VAL ----------------- ----------------- 22/05/08 14:20:33 22/05/10 01:02:00