INTERVAL 变动日期时间数值

语法

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
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号