Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil Rekod MySQL dari 30 Hari Terakhir, Termasuk Hari Ini?
Cara Memilih Rekod Pangkalan Data Antara Hari Ini dan 30 Hari Terakhir dengan MySQL
Soalan ini bertujuan untuk mendapatkan semula rekod yang ditambahkan dalam tempoh 30 hari yang lalu, dengan penukaran tarikh yang diperlukan untuk paparan. Pertanyaan yang diberikan cuba menggunakan DATE_FORMAT dalam klausa WHERE, tetapi ia tidak mengehadkan pemilihan seperti yang dimaksudkan.
Penyelesaian
Penyelesaian yang betul melibatkan penggunaan DATE_FORMAT dalam PILIH klausa:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
Sebab untuk Pembetulan
Fungsi DATE_FORMAT MySQL menukar tarikh kepada format tertentu, tetapi ia tidak mengubah suai nilai tarikh asas. Oleh itu, ia hendaklah digunakan selepas klausa WHERE, yang menentukan julat tarikh minat.
Pertimbangan Tambahan
Jika create_date disimpan sebagai DATETIME dengan bukan- komponen masa sifar, menggunakan CURDATE() dalam klausa WHERE tidak akan memilih rekod hari ini. Untuk mengambil kira perkara ini, gunakan NOW() sebaliknya:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Rekod MySQL dari 30 Hari Terakhir, Termasuk Hari Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!