问一日期涵数的问题``sysdate BETWEEN  2009-01-01 and 2009-01-01 (如果要找2009-01-01的数据,这样写似乎找不到喔`!)
要改成`
sysdate BETWEEN  2009-01-01 and (2009-01-01)+1  为什么这样可以呢?? 这样不就是找`2009-01-01~01-02吗???
这样如何sysdate>=2009-01-01 and sysdate<(2009-01-01)+1  这样如何????   

解决方案 »

  1.   

    to_char(date,'yyyy-mm-dd')='2009-01-01'
      

  2.   

    使用日期与字符串之间的转换函数
    日期———to_char》字符串
    字符串----to_date>日期
      

  3.   


    如果是日期型类型的话标准的话还是用to_date来转换字符到日期比如date>=to_date('2009-01-01','yyyy-mm-dd') and date <to_date('2009-01-01','yyyy-mm-dd')+1
      

  4.   

    你想查找一天的数据可以这样写
    sysdate BETWEEN  to_date('2009-01-01','yyyy-mm-dd') and to_date('2009-01-01')+1-1/(24*60*60)
    1/(24*60*60)这个表示一秒...
    上面查找的是2009-01-01 0:00:00到2009-01-01 23:59:59的数据
      

  5.   

    to_char(date,'yyyy-mm-dd')='2009-01-01'使用了函数,要索引函数索引,否则失效
      

  6.   

    纠正:sysdate BETWEEN  to_date('2009-01-01','yyyy-mm-dd') and to_date('2009-01-01','yyyy-mm-dd')+1-1/(24*60*60) 
      

  7.   

    你第一句SQL可以找到的是2009-01-01 0:00:00的数据
    第二句找的是2009-01-01 0:00:00与2009-01-02 0:00:00之间的数据
    如果只想到找2009-01-01 这一天的所有数据应该用 sysdate BETWEEN  to_date('2009-01-01','yyyy-mm-dd') and to_date('2009-01-01 23:59:59','yyyy-mm-dd hh:mi:ss')