Dalam kueri memori (QoQ) bisa menjadi rumit dalam hal tipe data. Mereka jauh kurang paham tentang konversi tipe data implisit daripada database. Dengan menggunakan date_format
MySQL fungsi, Anda sebenarnya mengubah nilai datetime menjadi string . Jadi ketika Anda menjalankan QoQ Anda, CF mungkin benar-benar melakukan string perbandingan, yang akan menghasilkan hasil yang sangat berbeda dari tanggal perbandingan. Bisa menjelaskan mengapa Anda mendapatkan hasil yang salah.
Coba ubah database . Anda kueri untuk mengembalikan nilai datetime alih-alih string:
SELECT
COUNT(Timedetail) as Occurances
, STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM ....
WHERE ...
Pembaruan:
Opsi lainnya adalah CAST nilai sebagai DATE
dalam QoQ Anda. Itu akan memaksa QoQ untuk melakukan perbandingan tanggal, bukan perbandingan string:
WHERE CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#"
cfsqltype="cf_sql_date">