我看見有幾個職位對這個問題,但我沒有得到它才能正常工作。我有一個PHP變量,我最初作爲一個字符串發佈。爲了能夠處理一個星期的日期範圍,我使用strToTime將其轉換爲日期時間格式(例如,2013年7月22日回波爲1374476400)。MySQL查詢解釋日期字符串的日期
我的表具有存儲爲Y-M-d格式(例如2013年7月22日被存儲爲2013年7月22日)文本其日期。我需要運行一個查詢,比較這兩個值來查找屬於我的一週範圍內的日期,所以我試圖將該文本轉換爲日期時間格式以進行比較。
這裏是我使用的SQL:
$wk_begin = $_POST['wk_begin'];
$wk_begin = strToTime($wk_begin);
$wk_end = $wk_begin + 8;
$sql = "SELECT * FROM myTable WHERE (DATE(date)>=$wk_begin AND DATE(date)<$wk_end)";
我沒有得到任何錯誤,但我的查詢是不是撿任何記錄起來,儘管我知道,有7個匹配的記錄桌子。所以,我有兩個問題:
1)是否有更好的方式去這件事嗎? 2)如果我在正確的軌道上,我怎麼能得到sql語句基於文本日期轉換成一個大的整數,這樣我可以做正確的比較。
任何幫助表示讚賞。謝謝!
編輯:感謝所有的建議。我更改了表格,以便日期以'日期'格式存儲(不再有字符串)。這是更新的代碼。還沒拿起任何值:
$wk_begin = $_POST['wk_date'];
$wk_end = $wk_begin + 7;
$sql = "SELECT * FROM Workouts WHERE 'date' BETWEEN '$wk_begin' AND '$wk_end'";
*「我的表格的日期存儲爲文本」*多數民衆贊成在問題 – 2013-07-24 20:28:44
爲什麼不把日期作爲日期!?在數據庫中。然後使用BETWEEN date1和date2。 – bestprogrammerintheworld
我試過了。它仍然不起作用。 – Alex