【发布时间】:2014-12-22 07:48:20
【问题描述】:
在我的sales 表中,sale_date 字段采用date 格式
当我运行查询时,
SELECT * FROM `sales` WHERE sale_date=2014-10-01;
不返回任何结果。实际上,sale_date 字段包含值 2014-10-01。
【问题讨论】:
在我的sales 表中,sale_date 字段采用date 格式
当我运行查询时,
SELECT * FROM `sales` WHERE sale_date=2014-10-01;
不返回任何结果。实际上,sale_date 字段包含值 2014-10-01。
【问题讨论】:
没有引号,这将被解释为三个整数,它们之间有减法运算符 (-):2014 - 10 - 01 = 2003。您需要将此值表示为date,例如,使用str_to_date 函数:
SELECT *
FROM `sales`
WHERE sale_date = STR_TO_DATE('2014-10-01', '%m-%d-%Y');
【讨论】:
日期使用引号。
你可以这样写。
SELECT * FROMsalesWHERE sale_date='2014-10-01';
【讨论】:
你可以使用任何一个
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";
如果记录非常大,那么第二次查询将比第一次需要时间来响应。
【讨论】: