Coldfusion MYSQL Date Query Параметр не возвращает результаты
Я только что натолкнулся на то, что, по моему мнению, должно быть ошибкой холодного синтеза.
У меня есть запрос:
<cfquery name="qryTest" datasource="#This.ds#">
SELECT *
FROM MyLovelyTable
WHERE 1=1
AND phoneNumber = <cfqueryparam cfsqltype="cf_sql_bigint" value="#variables.phoneNumber#">
AND callTime between <cfqueryparam cfsqltype="cf_sql_date" value="#variables.startDate#"> AND <cfqueryparam cfsqltype="cf_sql_date" value="#variables.endDate#">
ORDER BY phoneID
</cfquery>
Проблема в том, что, если я пройду через вторую переменную даты, ничего не будет возвращено. Если я скопирую префикс запроса SQL и параметры и отправлю запрос в базу данных, результаты будут возвращены напрямую. Просто когда он проходит через CF, он не работает. Если я удаляю второй параметр даты, он работает нормально. И если я преобразую второй параметр даты в строку, он будет работать.
Я попытался поменять значение второго параметра на now(), который тоже не работает.
Насколько я могу судить, проблема в том, что вторым параметром даты является тип даты.
Я делаю что-то явно не так, что я не знаю?
Переменные startDate и endDate являются объектами datefime Coldfusion. CallTime - это столбец dateTime в MariaDB.
1 ответ
Попробуйте использовать cfsqltype="cf_sql_date"
вместо этого, поскольку "cf_sql_datetime" не является допустимым параметром. Смотрите справочные документы для cfqueryparam.