如何在PHP中检查比今天更早的记录?

时间:2011-05-16 20:07:26

标签: php mysql

我已经设置了一个时间戳字段,其额外设置为ON UPDATE CURRENT_TIMESTAMP。 它有效,但我有一个问题:

我想查看比今天更早的所有记录 - 我该怎么做?

4 个答案:

答案 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小时之前请告诉我(并编辑您的问题)。

这是你做的:

  1. 获取昨天的时间戳:$timestamp = strtotime('24.00 yesterday');
  2. 以mysql日期时间格式转换它:$mysql_datetime = date('Y-m-d H:i:s', $timestamp);
  3. 执行查询:SELECT foo FROM bar WERE baz < $timestamp