在做一个计算请假时间的问题。自动计算请假时间 精确到 年月日时,如果可以精确到分的话,那更好。。
年月日,时,是用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 才是分钟,这样客户估计有点不爽的 

解决方案 »

  1.   

    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  --计算分钟的 
      

  2.   

    我发的是oracle 板块啊,不懂 4 楼什么意思
      

  3.   

    呵呵,是的,回复5楼的朋友,我是以小时为单位计算,但是因为用round 的原因,会有点不准确,如 5:30 小时,结果算成了6:30 小时