< =显示<的记录在mysql查询中

时间:2015-05-14 12:26:44

标签: mysql

在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的记录。请说明我所犯的错误。

1 个答案:

答案 0 :(得分:4)

我的猜测是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'

虽然技术上正确,但这可以防止使用索引。