我的表中有兩個STRING字段,它們組成日期和時間。我想連接這些字段,將它們轉換爲日期,以便我可以在選定時間之間獲取值。我想我在查詢中遇到str_to_date
格式的問題。下面是我在表中MySQL選擇查詢,concat並轉換爲日期兩個字段並與時間間隔進行比較
theDate theTime
Mon, Jan 20 7:00 pm
Mon, Jan 20 9:00 pm
Tue, Jan 21 5:00 pm
的PHP:
date_default_timezone_set('EST');
//trying to set up the same format as the concatenated fields will be
$now = date('D, M j g:i a');
include('..//db_connect.php');
try {
$stmt = $conn->query("SELECT * FROM table1 WHERE STR_TO_DATE(CONCAT(theDate, ' ', theTime), '%a, %b %e %l:%i %p')
BETWEEN (STR_TO_DATE('$now', '%a, %b %e %l:%i %p') - INTERVAL 4 HOUR AND STR_TO_DATE('$now', '%a, %b %e %l:%i %p') - INTERVAL 10 HOUR)");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($results);
} catch (Exception $e) {
echo $stmt."<br>".$e->getMessage();
}
我得到的是語法錯誤near 'HOURS AND STR_TO_DATE('Wed, Jan 21 7:07', '%a, %b %e %l %i') - INTERVAL 10 HOURS' at line 2
。查詢有什麼問題?另外,有沒有辦法打印查詢本身,查看連接的值,以查看格式化的值?
現在我剛剛得到'...服務器版本的錯誤,以便在第2行附近使用正確的語法 – denikov 2015-01-21 12:35:15