查找时间字符串大于当前时间SQL的行

时间:2014-01-07 17:08:57

标签: php mysql sql select

我在表格中有一列用于跟踪删除内容的时间。所有它都是通过php time()函数的时间戳。我现在需要找到那些包含90天前或更长时间创建的时间戳的行。我在查询时遇到问题。

这是我认为可行的

SELECT * FROM `table` WHERE (table.deleted + (90 * 24 * 60 * 60)) >= CURRENT_TIMESTAMP

3 个答案:

答案 0 :(得分:4)

使用间隔怎么样?

... WHERE table.deleted < (now() - interval 90 DAY)

这将获取table.deleted值超过90天的所有记录。

答案 1 :(得分:1)

你让操作员走错了方向。您希望文件在90天前删除,所以:

SELECT * FROM `table` WHERE (table.deleted + (90 * 24 * 60 * 60)) <= CURRENT_TIMESTAMP;

答案 2 :(得分:0)

SELECT * FROM list WHERE unix_timestamp()-lastrequest>7776000

以上示例需要:

  1. 你的行中的时间戳必须是unix_timestamp()格式(你可以从至少bash,php和mysql创建unix时间戳)
  2. 将“lastrequest”替换为您的行名称
  3. 您实际上从行的内容中减去当前时间戳(MySQL中的unix_timestamp())并检查差异是否大于7776000(这意味着90天)

    希望它有所帮助。