我的表中有两个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