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

oracle 时间问题 2分10秒 按 3分算
因为做的是手机计费系统     其中有两个字段

  begintime           endtime         (被设计成varchar2类型,不知道为什么)

  两个字段相减   得到通话时间

select   round(to_char((to_date(endtime, 'yyyy-mm-dd   hh24:mi:ss ')-to_date

(begintime, 'yyyy-mm-dd   hh24:mi:ss '))*24*60*60),0)   as   times     from   origcdr

这个得到的结果是以秒为单位的    

费率是以分钟为单位的      

而且不满一分的都按一分种算    

比如   这个结果是     120秒   那就是   2分钟  

                                  127秒   那就按   3分种算

有没有好的解决方法

------解决方案--------------------
select round((to_date(endtime, 'yyyy-mm-dd hh24:mi:ss ') -
to_date(begintime, 'yyyy-mm-dd hh24:mi:ss ')) *24 * 60 + 0.49999,0) a from origcdr
------解决方案--------------------
select ceil((to_date(endtime, 'yyyymmddhh24miss ') - to_date(begintime, 'yyyymmddhh24miss ')) * 24 * 60 ) from origcdr;