2013-08-02 96 views
0

我的意思是,如果我有表是这样的:如何选择带时间戳记录的记录?

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

如何选择一个记录,例如,创建一个星期前,一个月前还是年前?是否可能只有mysql函数或如何在php中执行?

回答

2

我认为它也可以与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)) 
1

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

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

为了得到一个图章1个星期前,你可以使用PHP functoon strtotime("-1 week") 。与月份类似。

如果您需要任何东西的当前邮票,请使用time()

1
select id,time,name from your_table where (current_timestamp-time)>7*24*60*60; 

7 * 24 * 60 * 60代表一个星期