Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Rekod MySQL dengan Cekap untuk Hari Tertentu, Mengabaikan Masa?

Bagaimana untuk Mendapatkan Rekod MySQL dengan Cekap untuk Hari Tertentu, Mengabaikan Masa?

Barbara Streisand
Barbara Streisandasal
2024-12-07 12:59:11468semak imbas

How to Efficiently Retrieve MySQL Records for Specific Days, Ignoring Time?

Mengambil Rekod dari Hari Tertentu dalam MySQL Tidak Termasuk Masa

Apabila bekerja dengan data temporal yang disimpan sebagai tarikh, ia menjadi perlu untuk mendapatkan semula rekod berdasarkan hari tertentu tanpa mengira masa. Senario ini kerap timbul dalam aplikasi yang menjejaki metrik harian atau menganalisis peristiwa dalam tempoh 24 jam tertentu.

Untuk mencapai matlamat ini, adalah penting untuk mengelak daripada menggunakan pemilih seperti DATE(datecolumns) = '2012-12- 24', kerana ia boleh memberi kesan ketara kepada prestasi dan menghalang penggunaan indeks.

Sebaliknya, ia adalah disyorkan untuk menggunakan pertanyaan berasaskan julat menggunakan operator BETWEEN. Sebagai contoh, pertanyaan berikut mendapatkan semula rekod daripada jadual yang ditentukan untuk 25 Disember 2012:

SELECT * FROM tablename 
WHERE columname BETWEEN '2012-12-25 00:00:00' AND '2012-12-25 23:59:59'

Pendekatan ini membolehkan penggunaan indeks dan memastikan prestasi pertanyaan yang optimum.

Baru-baru ini, ia telah mendapati bahawa menggunakan '23:59:59' sebagai penghujung hari mungkin tidak boleh dipercayai dalam versi MySQL tertentu. Untuk menangani perkara ini, adalah dinasihatkan untuk mengemas kini pertanyaan kepada yang berikut:

SELECT * FROM tablename 
WHERE columname >= '2012-12-25 00:00:00' 
AND columname < '2012-12-26 00:00:00'

Walaupun sintaks tertentu mungkin berbeza sedikit bergantung pada versi MySQL, prinsip mengecualikan perbandingan berasaskan masa dan menggunakan pemilih julat kekal penting untuk prestasi pertanyaan yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod MySQL dengan Cekap untuk Hari Tertentu, Mengabaikan Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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