Membandingkan Nilai Datetime dengan Tarikh Sahaja dalam SQL Server
Apabila menanyakan pangkalan data untuk rekod yang dibuat pada tarikh tertentu, adalah penting untuk mempertimbangkan sifat tarikh masa lajur. Membandingkan medan datetime dengan hanya bahagian tarikh menggunakan operator yang sama (mis., U.DateCreated = '2014-02-07') mungkin tidak mengembalikan hasil yang dijangkakan.
Penyelesaian 1: Menggunakan Julat Tarikh
Untuk membandingkan medan masa tarikh dengan hanya bahagian tarikh, gunakan tarikh julat:
Select * from [User] U where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Pendekatan ini memastikan rekod yang dibuat pada '2014-02-07' diambil semula, tanpa mengira komponen masa.
Sebab Mengelakkan Fungsi dalam Klausa WHERE
Ia tidak disyorkan untuk menggunakan fungsi (cth., tukar) dalam klausa WHERE atas dua sebab utama:
Amalan Terbaik untuk Julat Tarikh
Untuk prestasi dan ketepatan yang optimum semasa menanya julat tarikh dan masa, adalah amalan terbaik untuk menggunakan format berikut:
WHERE col >= '20120101' AND col < '20120201'
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Nilai Datetime dengan Hanya Bahagian Tarikh dalam SQL Server dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!