有一个表aa,字段是employeeid(工号),打卡时间1workdate1和打卡时间2workdate2 如下
emplooyeeid   workdate1                  workdate2
1000          '2006-06-01 08:00:00'   '2006-06-01 18:00:00'    
1000          '2006-06-02 08:30:02'   '2006-06-03 00:02:00'
1000          '2006-06-03 08:00:00'   '2006-06-03 18:00:00'
1000          '2006-06-04 08:00:00'   '2006-06-04 19:00:00'
1000          '2006-06-05 08:00:00'    '2006-06-06 02:00:00'
1000          '2006-06-06 08:00:00'    '2006-06-06 18:00:00'
我现想查找打卡时间大于当天晚上12点,即第二天凌晨的记录

解决方案 »

  1.   

    select * from aa
    where  workdate2 > to_date((to_char(sysdate,'yyyy-mm-dd')||'00:00:00'),'yyyy-mm- dd hh24:mi:ss')
      

  2.   

    如果你的workdate1和workdate2是date型:
    select * from aa where 
    to_number(to_char(workdate2,'dd')) - to_number(to_char(workdate1'dd')) > 0;如果是字符型:
    select * from aa where
    to_number(substr(workdate2,9,2)) - to_number(substr(workdate1,9,2)) > 0;
      

  3.   

    如果日期是日期型的:
    select * from aa where trunc(workdate2) - trunc(workdate1) >=1
    如果是字符型的:
    select * from aa where trunc(to_date(workdate2,'yyyy-mm-dd hh24:mi:ss')) - trunc(to_date(workdate1,'yyyy-mm-dd hh24:mi:ss')) >=1