日期:2014-05-17  浏览次数:20905 次

如何计算天数?写个select语句
我要计算2个日期的间隔天数,
举例:
  入库时间:‘2012-09-09 16:57:50 ’
  出库时间:‘2012-09-10 05:24:30 ’

通过语句想计算出:出库时间-入库时间=2天
另外说明一些入库时间和出库时间是文本的,需转换成日期型后再计算

------解决方案--------------------
select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date('2012-09-09','yyyy-mm-dd') from dual
------解决方案--------------------
探讨

这样写可以执行,但不知道有没有更简单的函数
select to_date(substr('2012-09-10 05:24:30',1,10), 'yyyy-mm-dd hh24:mi:ss') -
to_date(substr('2012-09-09 16:57:50',1,10), 'yyyy-mm-dd hh24:mi:ss')+1
from dual;

------解决方案--------------------
select trunc(to_date('2012-09-10 05:24:30', 'yyyy-mm-dd hh24:mi:ss')) -
trunc(to_date('2012-09-09 16:57:50', 'yyyy-mm-dd hh24:mi:ss')) + 1 
from dual
------解决方案--------------------
select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date('2012-09-09','yyyy-mm-dd') from dual
------解决方案--------------------
select trunc(to_date('2012-09-10 05:24:30', 'yyyy-mm-dd hh24:mi:ss'))
-trunc(to_date('2012-09-09 16:57:50', 'yyyy-mm-dd hh24:mi:ss'))+1
from dual;


日期直接相减就ok了
------解决方案--------------------
select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date('2012-09-09','yyyy-mm-dd') from dual