0

我刚刚遇到了我认为一定是coldfusion错误。

我有一个查询:

<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 变量是冷融合日期时间对象。CallTime 是 MariaDB 中的 dateTime 列。

4

1 回答 1

4

请尝试cfsqltype="cf_sql_date"改用,因为“cf_sql_datetime”不是有效选项。请参阅cfqueryparam 的帮助文档

于 2014-02-03T02:33:09.757 回答