从昨天的日期中选择行

时间:2015-07-13 15:10:01

标签: mysql sql

我有一个查询功能,可以选择前几天的所有行。但是,我需要它只选择昨天日期的行,但我不确定如何包含前一天。

我目前的查询是:

SELECT pdate FROM table 1
WHERE pdate < Date(NOW()) + INTERVAL 1 DAY

2 个答案:

答案 0 :(得分:1)

我认为它会看起来像这样,它具有使用索引的优势(如果你实现了它们)

SELECT pdate FROM table 1
WHERE pdate >= Date(NOW()) - INTERVAL 1 DAY
AND pdate < Date(NOW())

答案 1 :(得分:0)

您可以使用DATE_SUB()函数获取昨天的日期,然后使用WHERE子句条件来查找该日期,如下所示:

SELECT *
FROM myTable
WHERE DATE(pDate) = DATE_SUB(pDate, INTERVAL 1 DAY);

以下是可能对您有帮助的MySQL's Date and Time Functions列表。

注意:这样可行,但由于您在where子句的pDate列上使用了一个函数,因此无法利用您拥有的任何索引(请参阅下面的注释)。 Brian Driscoll给出了一个更好的答案。我选择留下这个答案,因为虽然它的效率较低,但我相信它更具可读性,因为where子句在检查内容时非常明确,而且更具可读性。这里的折衷是否值得,取决于开发者。