我在MySQL表中有一個timestamp
字段。我嘗試使用下面的SQL查詢來查詢該表:MySQL和Coldfusion日期問題
SELECT login_mode,count(login_mode) as total
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE('01/16/2013','%m/%d/%Y')
AND login_date <= STR_TO_DATE('01/17/2013','%m/%d/%Y')
GROUP BY login_mode
的查詢工作正常,當我直接在MySQL運行它,但不從ColdFusion的應用工作。我很難過!生成日期的代碼是:
login_date >= STR_TO_DATE(
'#DateFormat(CreateODBCDate(startDate),'mm/dd/yyyy')#'
, '%m/%d/%Y'
)
而且從ColdFusion的錯誤是這樣的:
您的SQL語法錯誤;請檢查 對應於您的MySQL服務器版本的手冊,在'01/16/2013',''%m /%d /%Y''附近使用 ')AND login_date < = STR_TO_DATE('' 2013年1月17日 '', '' %M /%d /」在行1
這裏有什麼問題?
編輯
我只是把這段SQL認爲CF是試圖執行。
SELECT login_mode,count(login_mode) as total
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE(''01/16/2013'',''%m/%d/%Y'')
AND login_date <= STR_TO_DATE(''01/17/2013'',''%m/%d/%Y'')
日期還有其他引號,它們引起了問題。如果我刪除了從代碼中添加的額外代碼,則不會添加任何內容。
@Leigh引用不會丟失。它在pamentalhesis的結尾。我會嘗試使用CreateODBCDate。 AFAIK,當我最後一次嘗試時,它不能與mysql一起工作。 –
哦,是的,你是對的。我的眼睛錯過了一個報價。 – Leigh
你可能也想看看在你的查詢中使用BETWEEN。 –