求一sql 语句....我现有一张订单表  里的有一个字段是 requestertime  表示交易时间
如果我查 某一时间段的数据:
select * from orderinfo t where t.publishuserid='10001142' and (t.requestertime between to_date('2006-05-16','yyyy-mm-dd') and to_date('2007-05-16','yyyy-mm-dd'))
可以正确查出,但如果我需要查当天的记录就查不出来,所以我改成:
select * from orderinfo t where t.publishuserid='10001142' and t.requestertime = to_date('2006-05-16','yyyy-mm-dd') 这样也不行:
select * from orderinfo t where t.publishuserid='10001142' and (t.requestertime between to_date('2007-05-16','yyyy-mm-dd') and to_date('2007-05-16','yyyy-mm-dd'))但是仍查不出来,但是不报错 
问问大家 我该怎么写查今天的记录呀???谢谢

解决方案 »

  1.   

    这是因为时间是到秒的。
    比如你要查5月16日的信息,可以写:
    between to_date('2007-05-16','yyyy-mm-dd') and to_date('2007-05-17','yyyy-mm-dd'),注意是到后一个是17日,
    也可以写:
    between to_date('2007-05-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2007-05-16 23:59:59','yyyy-mm-dd hh24:mi:ss')
      

  2.   

    或者也可以where trunc(requestertime)=to_date('2007-05-16','yyyy-mm-dd'),但是用函数不好。