1、Sql-oracle-日期问题

本文详细介绍了在SQL中如何计算两个日期之间的月份、时间、年份差,包括毫秒、秒、分钟、小时、天数的计算方法。此外,还展示了如何使用sysdate进行日期加减操作,适用于各种日期时间的计算需求。

1、月份差 

--MONTHS_BETWEEN(date2,date1) 


select months_between('19-12月-1999','19-3月-1999') from dual; 


select months_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.dd')) from dual; 

2、时间差表达式 

--获取两时间的相差豪秒数 
select ceil((to_date('2018-05-02 00:00:00' , 'yyyy-mm-dd hh24:mi:ss') - to_date('2018-04-30 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60 * 1000)  FROM DUAL; 


--获取两时间的相差秒数 
select ceil((to_date('2018-05-02 00:00:00' , 'yyyy-mm-dd hh24:mi:ss') - to_date('2018-04-30 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60)  FROM DUAL; 


--获取两时间的相差分钟数 
select ceil(((to_date('2018-05-02 00:00:00' , 'yyyy-mm-dd hh24:mi:ss') - to_date('2018-04-30 23:59:59' , 'yyyy-mm-dd hh24:mi:ss'))) * 24 * 60)   FROM DUAL; 


--获取两时间的相差小时数 
select ceil((to_date('2018-05-02 00:00:00' , 'yyyy-mm-dd hh24:mi:ss') - to_date('2018-04-30 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')) * 24)   FROM DUAL; 


--获取两时间的相差天数 
select ceil((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24:mi:ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')))  FROM DUAL; 
 

3、年份差


--获取两时间年份差 
select EXTRACT(year FROM to_date('2019-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2018-04-30','yyyy-mm-dd')) years from dual; 

4、sysdate一般使用

select sysdate,add_months(sysdate,12) from dual;  --加1年 
select sysdate,add_months(sysdate,1) from dual;   --加1月 
select sysdate,TO_CHAR(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1星期 
select sysdate,TO_CHAR(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1天 
select sysdate,TO_CHAR(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1小时 
select sysdate,TO_CHAR(sysdate+1/24/60,'yyyy-mm-dd HH23:MI:SS') from dual;  --加1分钟 
select sysdate,TO_CHAR(sysdate+1/24/60/60,'yyyy-mm-dd HH23:MI:SS') from dual;  --加1秒 
select   sysdate+7   from   dual;                     --加7天

转载于:https://www.cnblogs.com/monkeybrother/p/10118822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值