2010-01-26 37 views
5

嘿傢伙,我有一個表在sqlite3中具有時間戳列。它默認爲CURRENT_TIMESTAMP,以便插入該行時插入當前時間。現在我試圖獲取2天前或更多的插入行。我想知道這是否有道理。獲取行哪裏的時間戳列是2天舊

documentation我想出了:

SELECT * FROM test WHERE timestamp < strftime('%s', '-2 days')

,但顯然這是錯誤的。我想出了這個查詢,因爲這類似於在我做測試,我的實際代碼的方式:

strtotime($timestamp) < strtotime("-2 days")

但我希望sqlite3包含一些內置的檢查這種情況。

謝謝,我很欣賞任何迴應。

編輯:想通了:SELECT * FROM test WHERE timestamp < date('now', '-2 days')

我會保持這種開放的情況下,有人能拿出更好的東西。

+0

會這樣做,不知道這是適當的禮儀:D編輯:我會在兩天內接受它,那時系統會讓我接受它:) – 2010-01-26 00:29:48

回答

1

所以我想我想通了,它對我來說工作得很好。我不知道這是做的最好的辦法,但似乎非常簡單,就像我說的,工作原理:

SELECT * FROM test WHERE timestamp < date('now', '-2 days') 
+0

這是否說明不同的時區? – 2013-03-15 21:45:42

4
Postgres裏

(我知道這是不是你的平臺,但我在這裏發帖的別人的參考),你也可以做到以下幾點:

SELECT * FROM test WHERE my_timestamp < NOW() - INTERVAL '2 DAY'; 
+0

會在post()之前工作在postgresql my_timstamp之前() – Ashwin 2012-06-12 10:23:34