有2个SQL:
SELECT * FROM call_statistics_failure_details_day WHERE `date`>='2009-03-30 00:00:00' AND `date`<='2009-03-31 23:59:59'
SELECT * FROM call_statistics_failure_details_day WHERE `date`>='2009-03-30' AND `date`<='2009-03-31'现在我在数据库执行的结果是第一条没有查询结果,第二条SQL有结果.
请问这2个有什么区别,`date`是Date类型字段,date字段的值是"YYYY-MM-DD",比如"2009-03-30"

解决方案 »

  1.   

    前一个要求DATE是日期 时间型,而你是日期型,当然没有结果
      

  2.   

    首先说明一点,这个SQL就是查询昨天产生的记录有哪些
    我发现了两个情况....1.这2个SQL里面的与date字段比较的值都是同一天(换算成Date以后,按照mysql的手册上面讲,DATETIME字符串传入DATE字段以后,会自动删除表示TIME的那一节)
    如果把start >= ''2009-03-30 00:00:00" 改成 start >="'2009-03-29 00:00:00" ,也就是在2天之内,就能查询出结果.2.如果把start >= "'2009-03-30 00:00:00" 改成 start >="'2009-03-29 23:59:59" ,就能查询出结果.
      

  3.   

    应该是date和datetime数据存储转换的问题。
    但没遇到过。 最好检查一下你的 `date` 的实际值。