我有一個MySql數據庫,它使用時間戳字段來跟蹤插入條目的時間。MySql查詢日期範圍在PHP中
現在我想通過日期範圍查詢表中的條目。
我寧願使用MySql來提取記錄,而不是提取所有記錄,然後迭代和比較PHP中的日期。
所以我有一個開始日期和結束日期。我曾嘗試YYYYMMDD和YYYY-MM-DD格式,這兩種類型的查詢沒有成功:
// this doesn't appear to be working
SELECT COUNT(*) FROM table_name
WHERE DATE(timestamp_row) BETWEEN '{$date1}' AND '{$date2};
// this doesn't appear to be working either
SELECT COUNT(*) FROM table_name
WHERE DATE(timestamp_row) >= {$date1}
AND DATE(timestamp_row) <= {$date2};
看來,mysql的date()函數打開的時間戳爲這種格式: YYYY-MM-DD
有沒有辦法做到這一點。
如果您提供了像這樣的YYYY-MM-DD字符串,用單引號括起來,查詢就可以按您的需要工作。這裏有其他的錯誤,我看不到。 'timestamp_row'不是TIMESTAMP/DATETIME/DATE類型列嗎? – 2011-02-24 18:29:56
您是否使用實際日期值而不是'{$ date1}'等來嘗試它? – sdleihssirhc 2011-02-24 18:30:23
@dan timestanp_row是一個mysql類型的時間戳。我會嘗試使用靜態數字來查看是否有效。 – OneNerd 2011-02-24 19:00:05