在MySQL中,我正在使用以下查询来获取具有2015-02-02至2015-02-06之间的UpdatedAt字段的记录
SELECT `TotalPrice`,`UpdatedAt` FROM `price` WHERE `UpdatedAt`>= '2015-02-02' AND `UpdatedAt`<='2015-02-06' ORDER BY `UpdatedAt` DESC
这显示从2015-02-05到2015-02-02的UpdatedAt。并且该表还具有2015-02-06的记录。请指出我做的错误。
我的猜测是,这UpdatedAt
与时间有关。这是一个替代where
条款:
WHERE `UpdatedAt` >= '2015-02-02' AND `UpdatedAt` < '2015-02-07'
您可能会发现以下内容更具可读性:
WHERE `UpdatedAt` >= '2015-02-02' AND
`UpdatedAt` < DATE_ADD('2015-02-06', INTERVAL 1 DAY)
你应该有什么不能做的习惯得到:
WHERE DATE(UpdatedAt) >= '2015-02-02' AND DATE(UpdatedAt) <= '2015-02-06'
尽管从技术上讲是正确的,但这会阻止使用索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句