如何从mysql表中获取前一天的记录?

时间:2013-05-04 09:07:52

标签: mysql

我正在尝试从表中获取前一天的记录,但我并没有找到如何完成它。需要你的帮助..

表:RECORD_DATA

id       creationDate    
1   | 2013-05-03 04:03:35 |    
2   | 2013-05-03 04:03:35 | 

现在我需要获取2013-05-03创建的所有记录。时间可以是任何东西。所以我的查询应该有LIKE运算符。

我正在使用下面的查询,它给了我空集。

select creationDate from RECORD_DATA 
where creationDate LIKE DATE_SUB(STR_TO_DATE('2012-04-05','%d/%m/%Y'),INTERVAL 1 DAY);

5 个答案:

答案 0 :(得分:19)

使用SQL完成后非常简单,只需添加条件

即可
WHERE creationDate BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()

没有必要转换creationDate,因为它已经是一个日期:)。而且我相信这将是检查它的最快方法(如果你查看大型数据集,这将很重要)。

答案 1 :(得分:2)

我认为应该这样做:

SELECT * FROM RECORD_DATA WHERE `creationDate` >= CURDATE()-1 and `creationDate` < CURDATE();

答案 2 :(得分:2)

这将在INDEX上使用creationDate,如果有)。

SELECT  *
FROM    TableName
WHERE   creationDate >= CURDATE() - INTERVAL 1 DAY AND
        creationDate < CURDATE()

答案 3 :(得分:1)

这里的答案似乎是在回答“如何在过去24小时内找到东西?”,而不是“如何从上一个日历日期中找到东西?”。不同的问题。

如果您需要查找上一个日历日期的信息,可以尝试:

select creationDate from RECORD_DATA 
where date(creationDate) = curdate() - INTERVAL 1 DAY;

无需将日期转换为字符串并进行字符串比较。

答案 4 :(得分:0)

您可以使用

SELECT *
FROM `tableName`
WHERE DAY(created) = DAY(CURRENT_DATE - INTERVAL 1 DAY)
相关问题