Mengabaikan Bahagian Masa dalam Perbandingan DATETIME dan DATE
Dalam banyak senario, adalah perlu untuk membandingkan tarikh dan masa sambil mengabaikan komponen masa. Pertimbangkan senario dengan dua jadual yang mengandungi lajur [tarikh] jenis DATETIME2(0). Objektifnya adalah untuk membandingkan kedua-dua rekod berdasarkan bahagian tarikhnya sahaja (hari, bulan dan tahun), tidak termasuk komponen masa (jam, minit dan saat).
Untuk mencapai matlamat ini, SQL Server 2008 menyediakan penyelesaian yang mudah tetapi berkesan menggunakan operator CAST. Dengan menghantar lajur DATETIME2 ke jenis data DATE, maklumat masa dibuang dengan berkesan. Ini membenarkan perbandingan langsung antara bahagian tarikh medan.
Sebagai contoh, untuk menentukan sama ada dua rekod mempunyai tarikh yang sama, anda boleh menggunakan sintaks berikut:
IF CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)
Dalam ini kod, pengendali CAST menukar kedua-dua DateField1 dan DateField2 kepada jenis data DATE, memastikan bahawa hanya komponen tarikh dibandingkan. Jika tarikh adalah sama, pernyataan IF dinilai sebagai benar. Jika tidak, ia dinilai palsu.
Dengan menggunakan operator CAST, anda boleh mengasingkan komponen tarikh lajur DATETIME dengan mudah dan melakukan perbandingan yang tepat berdasarkan tarikh sahaja. Teknik ini amat berguna apabila berurusan dengan data sejarah, pengiraan sensitif masa atau senario di mana ketepatan masa tidak berkaitan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Tarikh Mengabaikan Komponen Masa dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!