0

我的意思是,如果我有这样的表:

id | time        | name
1  | 1354382314  | test1
2  | 1374769114  | test2
3  | 1322759914  | test3

例如,如何选择一周前、一个月前或一年前创建的记录?是否只有mysql功能才有可能,或者我该怎么做php

4

3 回答 3

1

我认为 mysql 函数也可以

喜欢,

select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 WEEK))
select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 YEAR))
select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))
于 2013-08-02T16:40:21.317 回答
1
select id,time,name from your_table where (current_timestamp-time)>7*24*60*60;

7*24*60*60 代表一周

于 2013-08-02T16:48:38.613 回答
1

由于时间戳是一个总是增长的数字,您可以简单地计算您请求范围的开始和结束戳,并使用

WHERE `time` >= 'startstamp' AND `time` <= 'endstamp'

要获得 1 周前的邮票,您可以使用 php functoon strtotime("-1 week")。与月份等类似。

如果您需要任何当前标记,请使用time().

于 2013-08-02T16:36:57.313 回答