2013-08-02 178 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代表一個星期