2012-09-12 38 views
2

我正在設置基本的cookie跟蹤並通過確認cookie位於其計算機上進行驗證,並且它們的IP與我存儲的記錄相匹配,並且記錄在過去一小時內存儲。我在過去一小時內就選擇了mySQL數據。mySQL在過去一小時內選擇記錄

現在,我表格中的列被稱爲'timestamp',它只包含NOW()插入的完整時間戳。我查了一下週圍,我想我找到了正確的判罰,但沒有奏效:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp < DATEADD(HOUR, -1, CURRENT_TIMESTAMP) "; 

取出時間戳電話,這一切工作正常,所以它只是一個部分。

謝謝!

+3

*沒有工作*,計算機融化成一堆吸菸渣?或者你有錯誤?或者輸出是出乎意料的? – Hamish

回答

5

嘗試:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp > DATE_SUB(CURDATE(), INTERVAL 1 HOUR)"; 
+0

謝謝!一旦允許,將接受答案。 – Paul

+4

在這個例子中,CURDATE()應該是NOW()。 –

+2

DATE_SUB(NOW(),INTERVAL 1 HOUR)而不是 –

2

您當前的查詢將選擇那些超過一小時舊的行。更改時間戳謂詞,以便它可以讀取時間大於或等於(即大於或等於)的行。

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp >= DATEADD(HOUR, -1, CURRENT_TIMESTAMP) "; 

請注意,我不確定dateadd是否適用於mysql,請在您的案例中應用相關函數。

相關問題