当date字段在where条件时,mysql查询没有返回正确的值

时间:2014-10-27 06:50:48

标签: mysql date where

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

当我运行查询时,

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

没有结果。实际上,sale_date字段包含值 2014-10-01

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

使用日期引号。

你可以简单地写下来。

SELECT * FROM {销售{1}}

答案 2 :(得分:1)

您可以使用

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

OR

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

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