使用mysql中的时间戳选择2周前的记录

时间:2013-10-29 23:35:33

标签: php mysql timestamp

我在表中有使用php的strtotime函数存储的记录。我需要和没有任何经验的是在2周内查询数据库中的所有记录

对不起,我没有代码可以显示,因为使用时间戳对我来说都是如此新鲜。

2 个答案:

答案 0 :(得分:5)

来自记忆:

SELECT * FROM Foo WHERE bar BETWEEN (NOW() - INTERVAL 2 WEEK) AND NOW()

将NOW()替换为与时间戳相关的任何内容。我目前正在与我的平板电脑进行摔跤,所以我无法检查这是否完全正确。祝你好运。

答案 1 :(得分:2)

如果您的日期存储为时间戳,那么它可以轻松地休息两周:

select
    *
from
    yourTable
where
    dateField<=UNIX_TIMESTAMP()
    and dateField>=(SELECT UNIX_TIMESTAMP()- 60*60*24*14)

由于这些都在几秒钟内完成,只需减去60秒x 60分钟x 24小时x 14天即可获得所需条件。

仅供参考:时间戳只是自unix epoch以来经过的秒数,因此加法或减法非常简单。如果你想要一个特定的日期,你也可以使用PHP的mktime来生成时间戳。