Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Rekod MySQL dari 30 Hari Terakhir, Termasuk Hari Ini?
Memilih Rekod Antara Hari Ini dan 30 Hari Terakhir dalam MySQL
Dalam MySQL, anda boleh mendapatkan semula rekod yang berada dalam julat tarikh yang ditentukan menggunakan pertanyaan seperti berikut:
SELECT * FROM table_name WHERE date_column BETWEEN start_date AND end_date
Walau bagaimanapun, apabila cuba mengehadkan keputusan kepada yang sebelumnya 30 hari, pengguna mungkin menghadapi masalah apabila pertanyaan mengembalikan semua rekod. Untuk menangani perkara ini, adalah penting untuk memahami sintaks pemformatan tarikh yang betul.
Dalam pertanyaan yang disediakan:
create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y'))
Fungsi DATE_FORMAT digunakan secara salah dalam klausa WHERE. Fungsi ini harus digunakan dalam klausa SELECT untuk memformat tarikh yang diambil untuk tujuan paparan:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date FROM table_name WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
Selain itu, adalah penting untuk mempertimbangkan jenis data lajur create_date. Jika ia disimpan sebagai DATETIME dengan komponen masa bukan sifar, pertanyaan di atas tidak akan memilih rekod hari ini dengan tepat. Dalam kes sedemikian, gunakan NOW() sebaliknya:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date FROM table_name WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
Dengan menggunakan pembetulan ini, pertanyaan akan mendapatkan semula rekod yang dibuat dengan betul dalam julat 30 hari yang ditentukan, diformatkan dalam 'mm/dd/yy' yang dikehendaki format.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Rekod MySQL dari 30 Hari Terakhir, Termasuk Hari Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!