如何在PHP中检查比现在旧的记录?

如何在PHP中检查比现在旧的记录?,php,mysql,Php,Mysql,我已经设置了一个时间戳字段,额外设置为更新当前时间戳。 这是可行的,但我有一个问题: 我想检查所有比今天旧的记录-我该怎么做?比今天旧(午夜前)的查询示例如下: SELECT * FROM my_table WHERE timestamp_column < CURDATE(); 从my_表中选择*,其中timestamp_列

我已经设置了一个时间戳字段,额外设置为更新当前时间戳。 这是可行的,但我有一个问题:

我想检查所有比今天旧的记录-我该怎么做?

比今天旧(午夜前)的查询示例如下:

SELECT * FROM my_table WHERE timestamp_column < CURDATE();
从my_表中选择*,其中timestamp_列
有关更多详细信息,请查看。如果您想要超过过去24小时,请查看fafnirbcrow的答案

选择*
SELECT * 
FROM {your_table} 
WHERE {time_stamp_field} < CURDATE()
从{your_table} 其中{time\u stamp\u field}
或者,你可以这样做

SELECT * 
FROM  {your_table}
WHERE {time_stamp_field} <= DATE_SUB( CURDATE(), INTERVAL 1 DAY )
选择*
从{your_table}

其中{time\u stamp\u field}您还可以使用date\u sub使其更容易

SELECT * FROM table WHERE timestamp_info < DATE_SUB(NOW(), INTERVAL 1 DAY);
从timestamp\u info
我假设,“比今天老”是指昨晚午夜之前插入的任何内容。如果你的意思是超过24小时前让我知道(并编辑你的问题)

以下是您要做的:

  • 获取昨天的时间戳:
    $timestamp=strottime('24.00forday')
  • 将其转换为mysql日期时间格式:
    $mysql\u datetime=date('Y-m-d H:i:s',$timestamp)
  • 执行查询:
    从baz中选择foo<$timestamp

  • 比今天旧还是比24小时旧?这是不明确的,但我怀疑“比今天旧的记录”可能意味着“24小时旧”之类的东西;不是今天。@cbrandolino,
    CURDATE()
    返回当前日期的午夜。在此之前的任何时间戳都会比今天旧。我没有投反对票,对不起,我读了《curtime》。不过,这里有一张赞成票,因为可能有人因为我的评论而对你投了反对票。^^@cbrandolino,不用担心。我不是在指责你。试想一下,那些在没有阅读的情况下四处转悠、对事情投反对票的人应该是……如果数据库位于单独的服务器上,纯MySQL解决方案会更好。@jason,你是说,使用不同的时间设置?因为否则我看不出有什么问题。MySQL和PHP的时间可能不同,甚至有不同的时区设置,这是很常见的。尤其是在单独的服务器上。如果用户在MySQL中存储日期(如更新时的
    所示),那么他们应该在MySQL中进行比较。+1使用PHP可以缓存查询,而使用MySQL的内置函数则不能。它是
    CURDATE()
    而不是CUR_date()