2010-01-26 47 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