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.

Другие вопросы по тегам