朋友遇到这样的问题,让我帮忙写的一个sql,其实很简单,贴出了供大家参考:
with minus_sec as (select
ceil((to_date('2011/02/24 10:00:00','yyyy/mm/dd hh24:mi:ss')-
to_date('2011/1/29 22:30:00','yyyy/mm/dd hh24:mi:ss'))*24*60*60) sec
from dual) ---把两个日期相减转换成秒数,由于两个日期相减默认是天数,小于一天的用小数表示,所以为了准确转换用ceil函数取比其大的最小整数。
select
trunc(sec/(60*60*24)) days, ---除以1天的秒数取整就得到天数
trunc(mod(sec,60*60*24)/(60*60)) hours, --针对一天的秒数取模 得到的秒数就是不足一天的秒数,然后除以3600取整得到小时
trunc(mod(sec,60*60)/60) mis, ---针对一小时秒数取模,得到的就是不足一小时的秒数,然后除以60取整得到分钟
mod(sec,60) sec --针对一分钟的秒数取模,得到的是不足一分钟的秒数,得到秒
from minus_sec;
没有评论:
发表评论