我有一个查询作为日常工作运行多年。不知怎的,昨天就停了。
我有一个timestamp
具有正确值和查询的字段...
SELECT *
FROM `shoppingcart`
WHERE `creation_datetime` like '2013-06-16'
我得到一个空的结果集。如果我%
在它工作的日期之后添加一个。
MySQL 是 5.1.61,服务器上没有任何更新。
如果您只想要列的date
一部分,datetime
您可以使用DATE()来提取它
SELECT *
FROM shoppingcart
WHERE date(creation_datetime) = '2013-06-16'
但这不会像@eggyal 提到的那样使用索引。这就是为什么你应该更好地使用
SELECT *
FROM shoppingcart
WHERE creation_datetime >= '2013-06-16'
AND creation_datetime < '2013-06-17'
datetime
类型有日期和时间。总是。如果省略时间部分,则与使用全零相同,因此只会匹配时间正好是午夜的记录。这就是为什么%
有效 - 因为它随时接受。
日期时间示例:YYYY-MM-DD HH:MM:SS
使用时LIKE
,必须使用%
符号,否则LIKE
作用与 相同=
。尝试
LIKE '2013-06-16%'
否则,您可以简单地使用 DATE 函数
DATE(creation_datetime) = '2013-06-16'