2011-08-17 123 views
4

我需要MySQL寫一個查詢,其中它檢索unix時間戳字段(「added_on」)超過6個月的所有行。MySQL查詢UNIX時間戳字段

幫助?

在此先感謝!

回答

1
SELECT * FROM foobar WHERE added_on < UNIX_TIMESTAMP() - 15778463 

這不完全6個月,每年爲它有點不同,但它應該是適用於各種用途(converted to seconds by Google

您也可以在UNIX時間戳轉換爲一個「真正的足夠接近「時間戳,並在其上使用MySQL的日期/時間函數,這可能會比查詢中硬編碼的15778463整數更精確,看起來更漂亮(可以使用INTERVAL 6 months),但它也比使用純文本更慢整數。

+1

爲了允許使用索引,請執行'WHERE added_on Mchl

+0

已更新。我已經習慣了的Postgres,誰還能瞭解它,使用索引 – shesek

+0

THa'd解釋爲什麼你認爲與「普通整數」工作會比用普通的整數(又名「真正的時間戳」)工作慢得多 – Mchl

2
SELECT * FROM mytable WHERE added_on < (NOW() - (6 * 30 * 24 * 60 * 60)); 
5
SELECT * 
FROM yourtable 
WHERE added_on <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 6 MONTH)) 
2
select * from table 
where now() - interval 6 month > from_unixtime(added_on) 
+0

這只是我在找什麼,謝謝! – dibs