Oracle日期加减

Oracle中日期进行加减可以使用多种方式,以下介绍三种

一种是针对天的操作,适用于对日,时,分,秒的操作,

一种是对月的操作,适用于月,年的操作,

一种是使用INTERVAL函数,适用于年,月,日,时,分,秒的操作

1.直接加减数字

  • 加一天
 select sysdate "当前时间",sysdate+1 "当前时间加一天" from dual ;

灵活使用

SELECT
    SYSDATE "当前时间",
    SYSDATE + 1 "加一天",
    SYSDATE + (1 / 24) "加一小时",
    SYSDATE + (1 / 24 / 60) "加一分钟",
    SYSDATE + (1 / 24 / 60 / 60) "加一秒钟",
    SYSDATE - 1 "减一天"
FROM
    dual;

查询结果如下:

2.通过ADD_MONTHS()函数

  • 加一个月
select sysdate "当前时间",ADD_MONTHS(sysdate, 1) "加一月" from dual ; 

灵活使用

SELECT
    SYSDATE "当前时间",
    ADD_MONTHS (SYSDATE, 1) "加一月",
    ADD_MONTHS (SYSDATE, - 1) "减一月",
    ADD_MONTHS (SYSDATE, 1 * 12) "加一年",
    ADD_MONTHS (SYSDATE, - 1 * 12) "减一年"
FROM
    dual;

查询结果如下:

3.使用INTERVAL函数

语法:INTERVAL '时间差数值'  { YEAR | MONTH | DAY | HOUR | MINUTE | SECODE} (精度数值)

得出的是相应类型的时间差,注意精度数值范围是1-9,不写默认值是2,精度不匹配时间差数值会报错

例如:当前时间加1,11,111年

SELECT
    SYSDATE "当前时间",
    SYSDATE + INTERVAL '1' YEAR "加1年",          -- 精度数值不写时是默认两位,此处可以写精度为1-9
    SYSDATE + INTERVAL '11' YEAR "加11年",        -- 此处可以不写,可以是1-9
    SYSDATE + INTERVAL '11' YEAR(2) "加11年",     -- 可以写2-9
    SYSDATE + INTERVAL '111' YEAR(3) "加111年",   -- 此处必须写精度,精度值3-9
    SYSDATE + INTERVAL '111' YEAR (9) "加111年"   -- 精度值可以大于当前精度,不能小于当前数值精度,不能超过9
FROM
    dual;

查询结果:

灵活运用

SELECT
    SYSDATE "当前时间",
    SYSDATE + INTERVAL '1' YEAR "加一年",
    SYSDATE + INTERVAL '-1' YEAR "减一年",
    SYSDATE + INTERVAL '1' MONTH "加一月",
    SYSDATE + INTERVAL '1' DAY "加一天",
    SYSDATE + INTERVAL '1' HOUR "加一小时",
    SYSDATE + INTERVAL '1' MINUTE "加一分钟",
    SYSDATE + INTERVAL '1' SECOND "加一秒"
FROM
    dual;

结果如下:

精度的使用同上,当然oracle数据库对于时间大小也是有限制的,年份范围是 -4713 和 +9999 之间, 且不为 0

  • 41
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值