基本上這個查詢應該選擇在過去30分鐘內插入的所有字段,但它不會,它絕對選擇每行,使我的腳本輸出錯誤數據查詢選擇在過去30分鐘插入的所有字段實際上選擇每一行
SELECT count(*) FROM mytable
WHERE `time` >= DATE_SUB(UTC_TIMESTAMP, INTERVAL 30 minute)
我時間字段存儲在這種格式的時間2011-06-08 22點32分03秒
查詢工作,但它選擇的每一行,而不是插入的那些最後30分鐘。
基本上這個查詢應該選擇在過去30分鐘內插入的所有字段,但它不會,它絕對選擇每行,使我的腳本輸出錯誤數據查詢選擇在過去30分鐘插入的所有字段實際上選擇每一行
SELECT count(*) FROM mytable
WHERE `time` >= DATE_SUB(UTC_TIMESTAMP, INTERVAL 30 minute)
我時間字段存儲在這種格式的時間2011-06-08 22點32分03秒
查詢工作,但它選擇的每一行,而不是插入的那些最後30分鐘。
添加括號來查詢 - UTC_TIMESTAMP()
或使用NOW()
- 很簡單的我。
嘗試
SELECT count(*) FROM mytable
WHERE `time` >= DATE_SUB(NOW(), INTERVAL 30 minute)
這告訴我時間列不是UTC,這意味着他得到UTC和當地時間之間的時差。 – Dave 2011-06-08 20:21:00
你的權利,考慮到他的例子,我認爲它使用的是標準的日期時間字段。他應該按照@Dave和@Tomasz Kowalczyk的建議使用UTC_TIMESTAMP()。 – 2011-06-08 20:25:04
什麼樣的數據類型是列「時間」? – davek 2011-06-08 19:48:01
這應該不起作用。它應該輸出一個帶有計數的單行。這是你想要的行爲嗎?如果是這樣,你應該更新你的問題來反映這一點。 – rockerest 2011-06-08 19:48:18
這是時間戳。 – dikidera 2011-06-08 19:48:43