1、运算符操作
直接使用加减即可
SELECT
SYSDATE "当前时间",
SYSDATE + ( 1 ) "当前时间加一天",
SYSDATE + ( 1 / 24 ) "当前时间加一小时",
SYSDATE + ( 1 / 24 / 60 ) "当前时间加一分钟",
SYSDATE + ( 1 / 24 / 60 / 60) "当前时间加一秒钟"
FROM
dual
>当前时间 当前时间加一天 当前时间加一小时 当前时间加一分钟 当前时间加一秒钟
>2022-01-19 13:53:28 2022-01-20 13:53:28 2022-01-19 14:53:28 2022-01-19 13:54:28 2022-01-19 13:53:29
2、ADD_MONTHS
根据函数名可知函数是对日期的月份进行操作
SELECT
SYSDATE "当前时间",
ADD_MONTHS( SYSDATE, 1 ) "当前时间加一个月" ,
ADD_MONTHS( SYSDATE, 1 * 12 ) "当前时间加十二个月(一年)" ,
ADD_MONTHS( SYSDATE, -1 ) "当前时间减一个月"
FROM
dual
>当前时间 当前时间加一个月 当前时间加十二个月(一年)当前时间减一个月
>2022-01-19 14:00:31 2022-02-19 14:00:31 2023-01-19 14:00:31 2021-12-19 14:00:31
3、INTERVAL
直译为:间隔,显然只需要根据对应的类型增加或者减少即可
语法:INTERVAL ‘数值’ { YEAR | MONTH | DAY | HOUR | MINUTE | SECODE} (精度数值 默认精度为2) [TO { YEAR | MONTH | DAY | HOUR | MINUTE | SECODE} ]
SELECT
SYSDATE "当前时间",
SYSDATE + INTERVAL '2' YEAR "当前时间加2年" ,
SYSDATE + INTERVAL '100-5' YEAR(5) TO MONTH "当前时间加100年5个月",
SYSDATE + INTERVAL '120' MONTH(3) "当前时间加120个月",
SYSDATE + INTERVAL '366 1:1' DAY(3) TO MINUTE "当前时间加366天1小时1分",
SYSDATE + INTERVAL '2:30' HOUR TO MINUTE "当前时间加2个小时30分钟",
SYSDATE + INTERVAL '366' DAY(3) + INTERVAL '12' HOUR(3) "当前时间加366天12个小时",
SYSDATE + INTERVAL '-2' YEAR "当前时间减2年"
FROM
DUAL
>当前时间 当前时间加2年 当前时间加100年5个月 当前时间加120个月 当前时间加366天1小时1分 当前时间加2个小时30分钟 当前时间加366天12个小时 当前时间减2年
>2022-01-19 15:34:21 2024-01-19 15:34:21 2122-06-19 15:34:21 2032-01-19 15:34:21 2023-01-20 16:35:21 2022-01-19 18:04:21 2023-01-21 03:34:21 2020-01-19 15:34:21
# 复杂操作建议使用这种格式 能清晰的得出想要预期的效果
SYSDATE + INTERVAL '366' DAY(3) + INTERVAL '12' HOUR(3) "当前时间加366天12个小时",