0

コールドフュージョンのバグだと思われるものに出くわしました。

質問があります:

<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 列です。

4

1 に答える 1

4

cfsqltype="cf_sql_date"「cf_sql_datetime」は有効なオプションではないため、代わりに使用してみてください。cfqueryparamのヘルプ ドキュメントを参照してください。

于 2014-02-03T02:33:09.757 に答える