select * from KPIDMPRD.F_SALEABETD_ADD where dateid between date '2012-2-23'and date '2012-7-23'查询出的数据是从2012/5/29日开始的,而用select * from KPIDMPRD.F_SALEABETD_ADD where dateid =date '2012-2-23'则可以查询出具体的2月23号的记录,求指教,怎么才能查询出从2月23号到7月23号的所有记录呢?上面的语句错在什么地方?

解决方案 »

  1.   

    你的语句是SQL SERVER下的么?select * from KPIDMPRD.F_SALEABETD_ADD where dateid between '2012-2-23'and '2012-7-23'
      

  2.   

    你的不是sqlserver吧?或者你的列不是datetime 列 是字符串。
      

  3.   

    是Sqlserver,我是不太明白为什么2个语句查询的记录结果不一样
      

  4.   

    TO_DATE(V_GETENDDATE, 'yyyy-mm-dd') AS DATEID,而且存储过程里面转换成data类型了
      

  5.   

    不明白问题出在哪里,请指出,查询从2月23号到7月23号的所有记录的sql语句该怎么写?
      

  6.   

    去掉between 和 and 后面的date
    '2012-2-23'的记录应该是可以查到的,而'2012-7-23'的记录可能不能查到。
    因为不写时间默认是00:00:000的格式另外,你不用把它转成date类型,一般情况它会自动进行隐式转换的
      

  7.   

    去掉data后错误提示文字与格式字符串不匹配
      

  8.   

    select dateid,date,* from KPIDMPRD.F_SALEABETD_ADD where date>='2012-2-23'and date<='2012-7-23'