Di MySQL, YEARWEEK()
fungsi mengembalikan tahun dan minggu untuk tanggal tertentu. Anda memberikan tanggal sebagai argumen, dan fungsi akan mengembalikan hasil yang sesuai.
Anda juga memiliki opsi untuk menentukan apakah akan memulai minggu pada hari Minggu atau Senin, dan apakah minggu tersebut harus dalam kisaran 0 hingga 53 atau 1 hingga 53.
Sintaks
Anda dapat menggunakan salah satu dari dua formulir berikut:
YEARWEEK(date) YEARWEEK(date,mode)
Dimana:
date
adalah tanggal yang Anda inginkan untuk mengembalikan nomor tahun dan minggu.mode
adalah angka yang menentukan apakah minggu harus dimulai pada hari Minggu atau Senin dan apakah minggu harus dalam kisaran 0 hingga 53 atau 1 hingga 53. Lihat tabel di bawah untuk kemungkinan nilai mode.
Jika tidak ada mode yang ditentukan, modenya adalah 0
.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh untuk didemonstrasikan.
SELECT YEARWEEK('2021-01-25') As 'Result';
Hasil:
+--------+ | Result | +--------+ | 202104 | +--------+
Berikut ini contoh dengan tanggal yang berbeda.
SELECT YEARWEEK('1999-12-25') As 'Result';
Hasil:
+--------+ | Result | +--------+ | 199951 | +--------+
Contoh 2 – Tentukan Mode
Jika Anda tidak menentukan argumen kedua, YEARWEEK()
fungsi menggunakan 0
sebagai mode.
Namun, Anda juga memiliki opsi untuk memberikan argumen kedua untuk menentukan mode mana yang akan digunakan. Contoh:
SELECT YEARWEEK('2019-11-23', 7) AS 'Mode 7';
Hasil:
+--------+ | Mode 7 | +--------+ | 201946 | +--------+
Nilai mode yang mungkin adalah sebagai berikut.
Mode | Hari pertama dalam seminggu | Rentang | Minggu 1 adalah minggu pertama … |
---|---|---|---|
0 | Minggu | 0-03 | dengan hari Minggu di tahun ini |
1 | Senin | 0-03 | dengan 4 hari atau lebih tahun ini |
2 | Minggu | 1-53 | dengan hari Minggu di tahun ini |
3 | Senin | 1-53 | dengan 4 hari atau lebih tahun ini |
4 | Minggu | 0-03 | dengan 4 hari atau lebih tahun ini |
5 | Senin | 0-03 | dengan hari Senin di tahun ini |
6 | Minggu | 1-53 | dengan 4 hari atau lebih tahun ini |
7 | Senin | 1-53 | dengan hari Senin di tahun ini |
Ini adalah nilai yang sama yang dapat digunakan dengan WEEK()
fungsi.
Satu perbedaan antara kedua fungsi ini adalah bahwa WEEK()
fungsi mendapatkan mode defaultnya dari default_week_format
variabel sistem (nilai default variabel ini adalah 0
). YEARWEEK()
di sisi lain, mengabaikan pengaturan ini, dan menggunakan 0
sebagai nilai defaultnya (terlepas dari default_week_format
pengaturan).
Contoh 3 – Perbandingan Mode
Berikut perbandingan singkat tentang bagaimana Anda bisa mendapatkan hasil yang berbeda tergantung pada mode yang digunakan.
Tiga contoh berikut menggunakan kode yang sama, tetapi dengan tiga tanggal yang berbeda. Tanggal-tanggal ini berurutan – terjadi pada tanggal 5, 6, dan 7 Januari. Seperti yang Anda lihat, hasilnya bisa sangat berbeda tergantung pada tanggal pasti dan mode yang digunakan.
Tanggal 1
SET @date = '2019-01-05'; SELECT YEARWEEK(@date, 0) AS 'Mode 0', YEARWEEK(@date, 1) AS 'Mode 1', YEARWEEK(@date, 2) AS 'Mode 2', YEARWEEK(@date, 3) AS 'Mode 3', YEARWEEK(@date, 4) AS 'Mode 4', YEARWEEK(@date, 5) AS 'Mode 5', YEARWEEK(@date, 6) AS 'Mode 6', YEARWEEK(@date, 7) AS 'Mode 7';
Hasil:
+--------+--------+--------+--------+--------+--------+--------+--------+ | Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 | +--------+--------+--------+--------+--------+--------+--------+--------+ | 201852 | 201901 | 201852 | 201901 | 201901 | 201853 | 201901 | 201853 | +--------+--------+--------+--------+--------+--------+--------+--------+
Tanggal 2
SET @date = '2019-01-06'; SELECT YEARWEEK(@date, 0) AS 'Mode 0', YEARWEEK(@date, 1) AS 'Mode 1', YEARWEEK(@date, 2) AS 'Mode 2', YEARWEEK(@date, 3) AS 'Mode 3', YEARWEEK(@date, 4) AS 'Mode 4', YEARWEEK(@date, 5) AS 'Mode 5', YEARWEEK(@date, 6) AS 'Mode 6', YEARWEEK(@date, 7) AS 'Mode 7';
Hasil:
+--------+--------+--------+--------+--------+--------+--------+--------+ | Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 | +--------+--------+--------+--------+--------+--------+--------+--------+ | 201901 | 201901 | 201901 | 201901 | 201902 | 201853 | 201902 | 201853 | +--------+--------+--------+--------+--------+--------+--------+--------+
Tanggal 3
SET @date = '2019-01-07'; SELECT YEARWEEK(@date, 0) AS 'Mode 0', YEARWEEK(@date, 1) AS 'Mode 1', YEARWEEK(@date, 2) AS 'Mode 2', YEARWEEK(@date, 3) AS 'Mode 3', YEARWEEK(@date, 4) AS 'Mode 4', YEARWEEK(@date, 5) AS 'Mode 5', YEARWEEK(@date, 6) AS 'Mode 6', YEARWEEK(@date, 7) AS 'Mode 7';
Hasil:
+--------+--------+--------+--------+--------+--------+--------+--------+ | Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 | +--------+--------+--------+--------+--------+--------+--------+--------+ | 201901 | 201902 | 201901 | 201902 | 201902 | 201901 | 201902 | 201901 | +--------+--------+--------+--------+--------+--------+--------+--------+