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

求一个计算小时的sql 语句。+ 急急急
在做一个计算请假时间的问题。自动计算请假时间 精确到 年月日时,如果可以精确到分的话,那更好。。
年月日,时,是用4个字段存的,必须这样存,客户要求分开。精确到年月日没问题,如果到时的话,就用问题了,如果时间大于1天的话,如请假时间从2013-4-1 到 2013-4-2 请假时间为1天,但是在系统里面显示的为  1,天24小时。 如果请假时间小于1天的话,那还是没问题。

我取时间的sql  为 select trunc(to_number(HR_DAYTO - HR_DAYFROM)*24,1) from hr_false 

HR_DAYTO  为截止时间 
HR_DAYFROM 为起始时间

我认为是我的sql 写的有问题。请教各位帮忙,告诉小弟要怎么写才对。我这个是用adempiere 开发的,无法在程序里面加判断去找,只能写sql 来做。。。求教。。如果要将时间拆成 时,分也可以的。如请假 5小时20分钟,那就分2个字段来访。这样是最理想的,因为我写的这个sql 如 5.4 表示5个小时,后面的0.4 还需要自己去计算,0.4*60 才是分钟,这样客户估计有点不爽的 



------解决方案--------------------
 楼主 想要计算 他们相差的 小时 差 ,也就是 请假 时间  以小时  为单位 是吧 ,明确定 一下,我也 不看上面 一大堆 东西了 。
------解决方案--------------------
select  mod(ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 ),24) from hr_false 

 --计算小时的 


select  mod(ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 ),60) from hr_false 

 --计算分钟的