SQL> select cyrq,trunc(cyrq,'day'),ryrq,trunc(ryrq,'day'),sum(trunc(cyrq,'day')-trunc(ryrq,'day'))
  2  from yz_jzzl 
  3  where rownum<3
  4  group by cyrq,ryrq;CYRQ       TRUNC(CYRQ RYRQ       TRUNC(RYRQ SUM(TRUNC(CYRQ,'DAY')-TRUNC(RYRQ,'DAY'))
---------- ---------- ---------- ---------- ----------------------------------------
27-2月 -02 24-2月 -02 01-1月 -02 30-12月-01                                       56
07-3月 -02 03-3月 -02 01-1月 -02 30-12月-01                                       63

解决方案 »

  1.   

    trunc(rq,'DAY') 返回 日期精确到天
    如:
    select trunc(sysdate,'DAY') from dual;
    返回 2002-09-13 00:00:00
      

  2.   

    round (date,'format')未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。TRUNC(date,'format')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。至于你的问题中:
    trunc(date,'day')是将任何星期六11:59:59 P.M.之前的日期截取为星期日(一个星期的第一天)。