Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Rekod dengan Cap Waktu Hari Ini dalam MySQL?

Bagaimana untuk Mendapatkan Rekod dengan Cap Waktu Hari Ini dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 09:20:02856semak imbas

How to Retrieve Records with Today's Timestamp in MySQL?

Cara Memilih Baris dengan Cap Masa Hari Semasa

Dalam sistem pengurusan pangkalan data, adalah perkara biasa untuk menyimpan cap masa untuk rekod data dijejaki apabila ia berada dicipta atau diubah suai. Walau bagaimanapun, apabila anda perlu mendapatkan semula data daripada jadual dengan cap masa, anda mungkin menghadapi cabaran dalam memilih rekod berdasarkan tarikh tertentu.

Pernyataan Masalah

Anda mempunyai pangkalan data jadual dengan lajur cap masa, dan anda mahu mendapatkan semula hanya rekod yang dibuat pada hari semasa. Anda pada mulanya menggunakan pertanyaan di bawah tetapi mendapati ia mengembalikan rekod selama 24 jam yang lalu, bukan hanya tarikh hari ini:

SELECT * FROM `table` WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 1 DAY));

Penyelesaian

Untuk memilih baris yang mempunyai cap masa hari semasa sambil mengabaikan masa, anda boleh menggunakan yang berikut pertanyaan:

SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
  • Fungsi DATE() mengembalikan bahagian tarikh cap waktu, mengalih keluar maklumat masa.
  • Fungsi CURDATE() mengembalikan tarikh semasa sebagai MySQL tarikh nilai.

Amaran:

Walaupun pertanyaan ini mencapai hasil yang anda inginkan, ia mungkin tidak berfungsi secara optimum. Menggunakan DATE() pada lajur cap masa boleh menghalang MySQL daripada menggunakan mana-mana indeks dengan cekap pada lajur itu.

Untuk penyelesaian yang lebih cekap, anda boleh mencipta lajur tarikh khusus dan menyimpan bahagian tarikh cap masa dalam lajur itu . Ini membolehkan MySQL menggunakan indeks pada lajur tarikh untuk pertanyaan yang lebih pantas.

Berikut ialah contoh cara anda boleh mencipta lajur tarikh khusus dan mengemas kini nilainya:

ALTER TABLE `table` ADD COLUMN `date` DATE NOT NULL;
UPDATE `table` SET `date` = DATE(`timestamp`);

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod dengan Cap Waktu Hari Ini 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