我已经设置了一个时间戳字段,其额外设置为ON UPDATE CURRENT_TIMESTAMP。 它有效,但我有一个问题:
我想查看比今天更早的所有记录 - 我该怎么做?
答案 0 :(得分:3)
SELECT *
FROM {your_table}
WHERE {time_stamp_field} < CURDATE()
或者,你可以做到
SELECT *
FROM {your_table}
WHERE {time_stamp_field} <= DATE_SUB( CURDATE(), INTERVAL 1 DAY )
因此,如果CURDATE()
返回2011-05-16,则DATE_SUB( CURDATE(), INTERVAL 1 DAY )
的评估结果为2011-05-15。
答案 1 :(得分:3)
您还可以使用date_sub使其更容易
SELECT * FROM table WHERE timestamp_info < DATE_SUB(NOW(), INTERVAL 1 DAY);
答案 2 :(得分:1)
早于今天(午夜之前)的示例查询将是:
SELECT * FROM my_table WHERE timestamp_column < CURDATE();
查看MySQL Date/Time Functions了解更多详情。如果您希望早于过去24小时,请查看 fafnirbcrow的答案
答案 3 :(得分:1)
我假设,“比今天更早”,你的意思是在昨晚午夜之前插入的任何东西。如果您的意思是超过24小时之前请告诉我(并编辑您的问题)。
这是你做的:
$timestamp = strtotime('24.00 yesterday')
; $mysql_datetime = date('Y-m-d H:i:s', $timestamp)
; SELECT foo FROM bar WERE baz < $timestamp
。