【发布时间】:2012-09-23 11:19:28
【问题描述】:
我想从数据库中检索 TODAY'S 数据,但我不知道该怎么做。我实际上想要获取不是过去 24 小时的数据,我只想要今天的数据(因此基于实际的服务器时间)。
我还想获取昨天的数据。谁能帮我怎么做?
示例代码:
"SELECT id FROM folk WHERE time = ???"
提前谢谢你!
【问题讨论】:
-
你如何存储“时间”、整数、时间戳、日期时间等?
我想从数据库中检索 TODAY'S 数据,但我不知道该怎么做。我实际上想要获取不是过去 24 小时的数据,我只想要今天的数据(因此基于实际的服务器时间)。
我还想获取昨天的数据。谁能帮我怎么做?
示例代码:
"SELECT id FROM folk WHERE time = ???"
提前谢谢你!
【问题讨论】:
我想你正在寻找这个:
"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
【讨论】:
SELECT id FROM folk WHERE DATE(time) = DATE(NOW());
SELECT id FROM folk WHERE DATE(time) = DATE(DATE_SUB(NOW(), INTERVAL 1 DAY));
只要“时间”具有正确的日期时间类型
【讨论】:
time 是一个时间戳,正如 OP 在他的评论中解释的那样(可能在你的回答之后发布)。
试试这样的东西>>
SELECT id from folk WHERE DAY( date ) = EXTRACT(DAY from (NOW() - inTERVAL
1 DAY ) )
【讨论】:
当您使用时间戳时:
"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."'"
【讨论】:
使用以下查询获取当前日期
SELECT *
FROM your_table_name
WHERE DAY('.$colum_name.') = DAY("2018-05-02")';
【讨论】: