Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah cara saya memilih rekod untuk minggu semasa dengan cekap dalam MySQL?

Bagaimanakah cara saya memilih rekod untuk minggu semasa dengan cekap dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-10-30 07:50:27253semak imbas

How do I select records for the current week efficiently in MySQL?

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!

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