我已经在网站上检查了类似的问题,但我无法理解它的工作原理。在我的数据库中,我有3列 - id
,name
和password
。我需要将什么添加到我的数据库中,以及如何获取最近24小时的记录?如何从MySQL中使用php获取最近24小时的记录
mysql_query("select * from core With-in the last 24 hours");
我已经在网站上检查了类似的问题,但我无法理解它的工作原理。在我的数据库中,我有3列 - id
,name
和password
。我需要将什么添加到我的数据库中,以及如何获取最近24小时的记录?如何从MySQL中使用php获取最近24小时的记录
mysql_query("select * from core With-in the last 24 hours");
你可以添加一列TS到表
ALTER TABLE core
ADD COLUMN ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
这是一个时间戳和每次插入或更新行的时间会自动设置为当前时间的机器上。
然后,您可以做
SELECT id, name, password FROM core
WHERE TIMESTAMPDIFF(HOUR, ts, NOW()) < 24;
它应该返回过去24小时内添加或更新条目。
我在数据库名称日期添加一列,我存储的日期是这种格式2013-12-22 23:09:24。现在如何处理查询 – user3117548
如果该列的类型是DATE,DATETIME或TIMESTAMP,则可以将它与TIMESTAMPDIFF()一起使用。只需将_ts_替换为日期保留栏的名称即可。 – Mellow
我很困惑与时间戳.acctully在我的数据库我有id,名称,密码和日期(type = varchar)。现在我必须添加才能获得最后24小时的记录..并且非常感谢您的快速回复 – user3117548
您应该再添加1列以保存日期。接下来,您可以使用此列来选择数据:
mysql_query("select * from `core` where date_field > NOW() - INTERVAL 24 HOUR");
这是什么工作= date_field> NOW() - INTERVAL 24 HOUR” – user3117548
date_field - 您用于保留日期的字段,您可以更改它到'ts'。我假设'ts'是你的日期字段的名称。现在() - INTERVAL 24 HOUR“);' – immo
http://dev.mysql.com/doc/refman/5.5/en/ date-and-time-functions.html date_time_value + | - INTERVAL n DAY | HOUR | MONTH等 对我来说,更好的表达方法是从指定时间开始添加或减少时间跨度。 – immo
作为解决您的问题,请尝试执行下面的代码片段
mysql_query("select * from `core` where HOUR(TIMEDIFF(NOW() , field))<=24);
为更多细节TIMEDIFF功能:请参考下面的文档网址
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff
试试:
SELECT *
FROM core
WHERE DATE(Time) = DATE(CAST(NOW() - INTERVAL 1 DAY AS DATE))
我在数据库名称日期添加一列我在哪里存储日期是这种格式2013-12-22 23:09:24。 现在如何处理查询 – user3117548
也许你可以使用其中一些类似的问题,并向我们展示你的尝试,或者至少链接到一个,并解释你不了解的内容。 – GolezTrol
这是什么工作= date_field> NOW() - INTERVAL 24 HOUR“ – user3117548