Saya baru saja menemukan apa yang menurut saya pasti merupakan bug coldfusion.
Saya punya pertanyaan:
<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>
Masalahnya adalah jika saya melewati variabel tanggal kedua tidak ada yang dikembalikan. Jika saya menyalin awalan kueri SQL dan parameter keluar dan menanyakan database secara langsung, hasilnya dikembalikan. Hanya saja ketika melewati CF tidak berfungsi. Jika saya menghapus parameter tanggal kedua, itu berfungsi dengan baik. Dan jika saya mengubah parameter tanggal kedua menjadi string, itu akan berfungsi.
Saya sudah mencoba menukar nilai parameter kedua ke now() yang juga tidak berhasil.
Sejauh yang saya tahu masalahnya adalah parameter tanggal kedua adalah tipe tanggal.
Apakah saya melakukan kesalahan yang jelas-jelas tidak saya sadari?
Variabel startDate dan endDate adalah objek coldfusion dateTime. CallTime adalah kolom dateTime di MariaDB.
cf_sql_date
(hanya tanggal) dancf_sql_timestamp
(tanggal dan waktu). Namun, ekspresi yang benar bergantung pada nilai yang Anda bandingkan. Apakah nilaicallTime
hanya berisi tanggal atau berisi tanggal dan waktu? Jika hanya berisi tanggal, maka beralih kecf_sql_date
akan berhasil. Jika tidak, Anda memerlukan ekspresi yang berbeda. - person Leigh   schedule 03.02.2014callTime
dan c) hasil yang baik saat Anda mentransfernya ke database - person Leigh   schedule 04.02.2014callTime
adalah datetime. Apakah itu benar? - person Leigh   schedule 04.02.2014a,b and c
adalah untuk menyediakan sscce yang dapat kami jalankan secara mandiri, dan mereproduksi masalah Anda. Ada beberapa kemungkinan alasan untuk hasil yang Anda peroleh dari cfquery, tetapi karena kami bahkan tidak mengetahui nilai parameter Anda... kami hanya dapat menebak apa alasannya. Masuk akal? - person Leigh   schedule 04.02.2014