Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membandingkan Nilai Datetime dengan Hanya Bahagian Tarikh dalam SQL Server dengan cekap?

Bagaimana untuk Membandingkan Nilai Datetime dengan Hanya Bahagian Tarikh dalam SQL Server dengan cekap?

Barbara Streisand
Lepaskan: 2025-01-05 14:41:40
asal
978 orang telah melayarinya

How to Efficiently Compare Datetime Values with Only the Date Part in SQL Server?

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')
Salin selepas log masuk

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:

  1. Kehilangan Pengoptimuman Indeks: Fungsi pada data mungkin menghalang pengoptimum daripada menggunakan indeks, mengakibatkan pertanyaan yang lebih perlahan.
  2. Overhed Pengiraan Tinggi: Fungsi boleh memperkenalkan overhed pengiraan yang ketara apabila digunakan pada set data yang besar.

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'
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan