数据库中两时间end_date和start_date相减如果大于1天格式化为?天?小时?分
如果小于1天格式化?小时?分
如果小于1小时格式化为?分先在我用case判断写得很长,或者到java里判断,感觉也不方便,请问大家有什么好点的方法?

解决方案 »

  1.   

    select trunc(date1)||'天'||trunc(mod(date1,1)*24)||'小时'||trunc(mod(date1*24,1)*60)||'分' from
    (
    select end_date-start_date date1 from somedates
    );
      

  2.   

    case会很长吗?
    select case when d=0 and h=0 then mi||'分'
      when d=0 then h||'小时'||mi||'分'
      else d||'天'||h||'小时'||mi||'分' end bt_time from
    (
    select trunc(end_date-start_date) d,trunc(mod(end_date-start_date,1)*24) h,
      trunc(mod((end_date-start_date)*24,1)*60) mi from tt)