【问题标题】:Mysql query not returning correct value when date field in where condition当日期字段在where条件下时,Mysql查询不返回正确的值
【发布时间】:2014-12-22 07:48:20
【问题描述】:

在我的sales 表中,sale_date 字段采用date 格式

当我运行查询时,

SELECT * FROM `sales` WHERE sale_date=2014-10-01;

不返回任何结果。实际上,sale_date 字段包含值 2014-10-01

【问题讨论】:

    标签: mysql date where


    【解决方案1】:

    没有引号,这将被解释为三个整数,它们之间有减法运算符 (-):2014 - 10 - 01 = 2003。您需要将此值表示为date,例如,使用str_to_date 函数:

    SELECT * 
    FROM   `sales` 
    WHERE  sale_date = STR_TO_DATE('2014-10-01', '%m-%d-%Y');
    

    【讨论】:

      【解决方案2】:

      日期使用引号。

      你可以这样写。

      SELECT * FROMsalesWHERE sale_date='2014-10-01';

      【讨论】:

        【解决方案3】:

        你可以使用任何一个

        SELECT * FROM `sales` WHERE sale_date between "2014-10-01 00:00:00" and "2014-10-01 23:59:59";
        

        SELECT * FROM `sales` WHERE date(sale_date) = "2014-10-01";
        

        如果记录非常大,那么第二次查询将比第一次需要时间来响应。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-19
          • 2012-11-05
          • 1970-01-01
          • 2022-09-30
          • 1970-01-01
          • 1970-01-01
          • 2012-02-29
          • 1970-01-01
          相关资源
          最近更新 更多