Rumah >pangkalan data >tutorial mysql >Bagaimana Mengeluarkan Tarikh dengan Cekap dari Lajur DateTime dalam MySQL?

Bagaimana Mengeluarkan Tarikh dengan Cekap dari Lajur DateTime dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 17:33:10763semak imbas

How to Efficiently Extract Dates from DateTime Columns in MySQL?

Memilih Tarikh dengan Cekap daripada Lajur Datetime

Apabila bekerja dengan jenis data datetime, selalunya perlu mengekstrak komponen tertentu, seperti tarikh atau masa. Artikel ini menangani cabaran untuk mendapatkan semula tarikh daripada lajur datetime dalam MySQL.

Isunya

Pertanyaan biasa ialah menapis baris berdasarkan tarikh tertentu, seperti dalam contoh berikut:

SELECT * FROM data
WHERE datetime = '2009-10-20'
ORDER BY datetime DESC;

Walau bagaimanapun, penyelesaian yang disediakan untuk menggunakan klausa ANTARA untuk menentukan julat tarikh '2009-10-20 00:00:00' hingga '2009-10-20 23:59:59' mengembalikan set hasil kosong.

Penyelesaian

Untuk mengekstrak tarikh dengan berkesan, MySQL menyediakan fungsi DATE(), yang mengembalikan komponen tarikh bagi nilai datetime. Menggunakan DATE() dalam klausa WHERE membenarkan perbandingan langsung dengan literal tarikh:

SELECT * FROM data
WHERE DATE(datetime) = '2009-10-20'
ORDER BY datetime DESC;

Pendekatan alternatif yang kadangkala boleh meningkatkan prestasi ialah menggunakan operator LIKE dengan akhiran kad bebas:

SELECT * FROM data
WHERE datetime LIKE '2009-10-20%'

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa perbandingan LIKE mungkin mempunyai implikasi prestasi, seperti yang dibincangkan dalam urutan Stack Exchange yang lain.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Tarikh dengan Cekap dari Lajur DateTime dalam MySQL?. 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