MySQL: Cekap Memilih Rekod untuk Minggu Semasa
Untuk mendapatkan semula rekod minggu semasa menggunakan MySQL, adalah penting untuk memahami konsep penomboran minggu dalam MySQL. Secara lalai, MySQL mengikuti sistem penomboran minggu ISO 8601, di mana minggu bermula pada hari Isnin dan berakhir pada hari Ahad.
Mengira Tarikh Mula dan Tamat Minggu
Satu pendekatan untuk pilih rekod untuk minggu semasa melibatkan pengiraan tarikh mula dan tamat minggu berdasarkan tarikh semasa. Proses ini termasuk menentukan hari bekerja tarikh semasa, mengira bilangan hari yang lalu untuk mencapai hari Isnin sebelumnya, dan seterusnya mengira tarikh Isnin dan Ahad minggu semasa.
Menggunakan Fungsi YEARWEEK()
Walau bagaimanapun, MySQL menyediakan kaedah yang lebih cekap untuk memilih rekod mingguan menggunakan fungsi YEARWEEK(). Fungsi YEARWEEK() mengambil tarikh sebagai input dan mengembalikan integer yang mewakili minggu dalam setahun, di mana minggu 1 bermula pada hari Isnin pertama tahun itu.
Memilih Rekod Mingguan
Untuk memilih rekod untuk minggu semasa, anda boleh menggunakan pertanyaan berikut:
<code class="mysql">SELECT * FROM your_table WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>
Pertanyaan di atas menggunakan fungsi YEARWEEK() dengan hujah 1 untuk memaksa penomboran minggu bermula pada Isnin. Dengan membandingkan nombor minggu yang dikira untuk setiap tarikh rekod dengan nombor minggu semasa, pertanyaan itu menapis rekod yang berada di luar minggu semasa dengan berkesan.
Contoh
Pertimbangkan jadual berikut dengan lajur tarikh:
| id | name | date | |---|---|---| | 1 | John | 2023-11-21 | | 2 | Mary | 2023-11-22 | | 3 | Bob | 2023-11-27 | | 4 | Linda | 2023-11-29 |
Jika tarikh semasa ialah 22 November 2023 (Rabu), pertanyaan di atas hanya akan mengembalikan rekod dengan tarikh dalam minggu bermula pada hari Isnin, 20 November 2023, dan berakhir pada hari Ahad, 26 November 2023:
| id | name | date | |---|---|---| | 1 | John | 2023-11-21 | | 2 | Mary | 2023-11-22 |
Atas ialah kandungan terperinci Bagaimanakah cara saya memilih rekod untuk minggu semasa dengan cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!