コールドフュージョンのバグだと思われるものに出くわしました。
質問があります:
<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>
問題は、2 番目の日付変数を渡すと何も返されないことです。クエリ プレフィックス SQL とパラメータをコピーしてデータベースに直接クエリを実行すると、結果が返されます。それが機能しないのは、CFを通過したときだけです。2 番目の日付パラメーターを削除すると、正常に動作します。そして、2 番目の日付パラメーターを文字列に変換すると、機能します。
2 番目のパラメーターの値を now() に交換しようとしましたが、どちらも機能しません。
問題は、2 番目の日付パラメーターが日付型であるということです。
私は気づいていない明らかに間違ったことをしていますか?
startDate 変数と endDate 変数は、coldfusion の dateTime オブジェクトです。CallTime は、MariaDB の dateTime 列です。