2011-02-10 143 views
1

我使用時間戳字段,插入時使用當前時間設置。mysql時間比較 - 奇怪的結果

它包含以下條目。

6 2011-02-10 09:36:31  174.129.228.67 
    4 2011-02-10 09:36:36  174.129.228.67 
    5 2011-02-10 09:36:41  174.129.228.67 
    4 2011-02-10 12:11:08  192.168.0.4 
    6 2011-02-10 12:48:21  192.168.0.22 
    1 2011-02-10 12:48:45  192.168.0.22 
    2 2011-02-10 12:49:00  192.168.0.22 
    2 2011-02-10 12:49:01  66.220.158.251 
    6 2011-02-10 12:49:18  66.220.158.251 
    5 2011-02-10 13:00:25  66.220.149.249 

NOW()是

2011-02-10 17點20分04秒

當我執行, SELECT * FROM列表,其中timestampField>(NOW() - (8 * 60 * 60))

它返回空結果集。在這裏,我希望在2011-02-10 9:20:04之後輸入條目。

當我執行, SELECT * FROM列表,其中timestampField>(NOW() - (14 * 60 * 60))

我得到的,

1 2011-02-10 12:48:45  192.168.0.22 
2 2011-02-10 12:49:00  192.168.0.22 
2 2011-02-10 12:49:01  66.220.158.251 
6 2011-02-10 12:49:18  66.220.158.251 

爲什麼這樣。你能告訴我什麼是正確的方式來獲得前幾小時的條目。

謝謝。

回答

2

你不能在mysql中減去秒數。你需要使用這樣的功能:

WHERE dateadded > DATE_SUB(NOW(), INTERVAL 8 HOUR) 
+0

它是如何返回一些值和一些值,而不是。在手冊中提到任何內容。 – itsraja 2011-02-10 12:08:33