インメモリクエリ(QoQ)は、データ型に関しては注意が必要な場合があります。それらは、データベースよりも暗黙のデータ型変換についてはるかに賢明ではありません。 MySQLのdate_format
を使用する 関数では、実際に日時の値を文字列に変換しています。 。したがって、QoQを実行すると、CFが実際に文字列を実行している可能性があります。 比較。日付とは非常に異なる結果が得られます。 比較。間違った結果が得られる理由を説明できます。
データベースを変更してみてください 文字列の代わりに日時値を返すクエリ:
SELECT
COUNT(Timedetail) as Occurances
, STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM ....
WHERE ...
更新:
もう1つのオプションは、値をDATE
としてキャストすることです。 QoQで。これにより、QoQは文字列比較ではなく、日付比較を実行するようになります。
WHERE CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#"
cfsqltype="cf_sql_date">