我刚刚遇到了我认为必须是冷冻虫的事情。
我有一个问题:
<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变量是coldfusion dateTime对象。 CallTime是MariaDB中的dateTime列。
答案 0 :(得分:4)
尝试使用cfsqltype="cf_sql_date"
代替&#34; cf_sql_datetime&#34;不是一个有效的选择。请参阅help docs for cfqueryparam。