如何从MySQL数据库获取今天/昨天的数据?

时间:2012-09-23 11:19:28

标签: php mysql

我想从数据库中检索一个今天的数据,但我不知道该怎么做。我实际上想从过去的24小时获取数据,我只想要今天的数据(所以基于实际的服务器时间)。

我还想获得昨天的数据。任何人都可以帮我怎么做?

示例代码:

"SELECT id FROM folk WHERE time = ???"

提前谢谢!

5 个答案:

答案 0 :(得分:15)

我认为你正在寻找这个:

"SELECT id FROM folk WHERE DATE(time) = CURDATE()"

时间必须是表中包含对行的引用的字段。

<强>更新

获得昨天的补充:

"SELECT id FROM folk WHERE DATE(time) = CURDATE() - 1"

更新2

要在本月获得所有新增内容:

"SELECT id FROM folk 
WHERE MONTH(time) = MONTH(NOW()) AND YEAR(time) = YEAR(NOW())"

参考:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

答案 1 :(得分:3)

SELECT id FROM folk WHERE DATE(time) = DATE(NOW());

SELECT id FROM folk WHERE DATE(time) = DATE(DATE_SUB(NOW(), INTERVAL 1 DAY));

前提是“时间”具有正确的日期时间类型

答案 2 :(得分:1)

当您使用时间戳时:

"SELECT id FROM folk WHERE time >= ".mktime(0, 0, 0)

这将从今天开始选择所有数据。

如果你想获得今天的所有日期,你可以

"SELECT id FROM folk WHERE time < ".mktime(0, 0, 0)

要从昨天选择数据,您可以:

"SELECT id FROM folk WHERE time < ".mktime(0, 0, 0)." AND time >= ".mktime(0, 0, 0, date('m'), date('d')-1, date('Y'))

如果您使用DATETIME,仅供参考,它将类似于:

"SELECT id FROM folk WHERE time >= '".date('Y-m-d').' 00:00:00."'"

答案 3 :(得分:1)

尝试类似这样的&gt;&gt;

SELECT id from folk  WHERE DAY( date ) = EXTRACT(DAY from (NOW() - inTERVAL 
1 DAY ) ) 

请参阅此链接 http://www.webmasterworld.com/forum112/278.htm

答案 4 :(得分:0)

使用以下查询

之类的内容获取当前日期
SELECT * 
 FROM your_table_name 
WHERE DAY('.$colum_name.') = DAY("2018-05-02")';