oracle日期加减计算

https://blog.csdn.net/zhangbingtao2011/article/details/79150087

oracle数据库中有多种对日期加减的计算方法,废话不多说,开始。

1、直接加减。

(1)求当前时间及一天后:

 

select sysdate,sysdate + 1 from dual;

输出为:

 

 

	2018-1-24 14:05:19	2018-1-25 14:05:19

(2)求当前时间及一小时后:

 

 

select sysdate,sysdate + 1/24 from dual;

输出为:

 

 

	2018-1-24 14:07:45	2018-1-24 15:07:45

求分钟及秒只要做相应除法即可。

 

不过此种方法不能做月的加减,因为每月的天数不一样。

2、用函数add_months。

(1)求当前时间及一年后:

 

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

输出为:

 

 

	2018-1-24 14:11:03	2019-1-24 14:11:03

 

(2)求当前时间及一月后:

 

select sysdate,add_months(sysdate,1) from dual;

输出为:

 

 

	2018-1-24 14:11:03	2018-2-24 14:11:03

同样,此方法不能做天及更小的时间加减,因为每月天数不一样的原因。

3、使用numtoyminterval(发音:num to Y M interval)或numtodsinterval(发音:num to D S interval)函数。

(1)求当前时间及一年后:

 

select sysdate,sysdate + numtoyminterval(1,'year') from dual;

输出为:

 

 

	2018-1-24 14:32:34	2019-1-24 14:32:34

(2)求当前时间及一月后:

 

 

select sysdate,sysdate + numtoyminterval(1,'month') from dual;

输出为:

 

 

	2018-1-24 14:33:49	2018-2-24 14:33:49

(3)求当前时间及一天后:

select sysdate,sysdate + numtodsinterval(1,'day') from dual;

输出为:

	2018-1-24 14:34:52	2018-1-25 14:34:52

(4)求当前时间及一小时后:

select sysdate,sysdate + numtodsinterval(1,'hour') from dual;

输出为:

	2018-1-24 14:35:47	2018-1-24 15:35:47

(5)求当前时间及一分钟后:

select sysdate,sysdate + numtodsinterval(1,'minute') from dual;

(6)求当前时间及一秒后:

select sysdate,sysdate + numtodsinterval(1,'second') from dual;


相比而言,第三种函数功能还是比较强大的,但是拼写字母太多,用的比较少,毕竟前两种已经够用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值