fptl.net
当前位置:首页 >> orAClE日期相减 >>

orAClE日期相减

Oracle中两个to_date相减得到的是两个日期间的天数。 语句如: select to_date('2015-12-25','yyyy-mm-dd')-to_date('2015-12-01','yyyy-mm-dd') from dual;结果为:

比如2012-02-08与2014-04-06,先算天,不够减时算20140308-20140406的天数29,再算02-03月数1,同样,月不够减用年补

按日期格式转换之后直接相减取绝对值就可以了,如下: SELECT ABS(TO_DATE('2017-08-24','YYYY-MM-DD') - TRUNC(TO_DATE('2017-09-14','YYYY-MM-DD'))) FROM DUAL

在楼上写的sql语句的基础上再加上两个条件就行了,如下: select stime,etime,(etime-stime)*24*3600 from A where stime>'2013-01-20 17:53:28' and stime

ORACLE 日期往后推移增加多少天是直接使用日期字段 + 整型的天数来得到的,结果是推移这些天之后的日期。同样也可以使用减号,表示往前推移。 SELECT TRUNC(SYSDATE + 1) FROM DUAL,这个就是明天,TRUNC是去掉小时分秒的函数。 连个日期相减,...

select * from 表名 where sysdate-表里的时间字段>20这样不就可以吗?前提是你表里时间字段是date型,字符型的话得改,你先确认一下吧

select a1,count(a1) from (select a1,to_number(to_char(a3,'yyyymmdd'))-to_number(to_char(a2,'yyyymmdd')) as a4 from table1) where a4> 0 group by a1

以2015年12月1日至2015年12月31日为例。其中周六和周日算周末。 查询除周末以外的天数(oracle中以周日为1,周一为2……周六为7),可用如下语句: with t as(select rownum-1 rn from dual connect by rownum

select (to_date('20130620101647','yyyymmddhh24miss')-to_date('20130620094008','yyyymmddhh24miss'))*86400 from dual; 前边是两个时间相减,得到天数,然后天数*每天的秒数(每天86400秒),结果就是你要的秒

你需要先构造一个休息日列表,这个比较麻烦。 剩下的用sql语句来完成就行。

网站首页 | 网站地图
All rights reserved Powered by www.fptl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com