Di MariaDB, WEEKOFYEAR()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan minggu kalender dari tanggal tertentu sebagai angka dalam rentang dari 1
ke 53
.
Ini sama dengan menggunakan WEEK()
berfungsi dalam mode 3, dan oleh karena itu hasilnya sesuai dengan ISO 8601:1988.
Ia menerima satu argumen; tanggal yang ingin Anda ekstrak minggunya.
Sintaks
Sintaksnya seperti ini:
WEEKOFYEAR(date)
Dimana date
adalah ekspresi tanggal untuk mendapatkan minggu kalender.
Contoh
Ini contohnya:
SELECT WEEKOFYEAR('2030-01-01');
Hasil:
+--------------------------+| WEEKOFYEAR('2030-01-01') |+--------------------------+| 1 |+--------------------------+
Ini setara dengan melakukan hal berikut:
SELECT WEEK('2030-01-01', 3);
Hasil:
+------------------------+| MINGGU('2030-01-01', 3) |+-----------------------+| 1 |+------------------------+
Nilai Tanggal-waktu
WEEKOFYEAR()
fungsi juga bekerja dengan nilai datetime:
SELECT WEEKOFYEAR('2030-08-01 10:30:45');
Hasil:
+-----------------------------------+| WEEKOFYEAR('2030-08-01 10:30:45') |+--------------------------------- --+| 31 |+-----------------------------------+
Tanggal Numerik
Dimungkinkan juga untuk melewatkan tanggal sebagai angka, asalkan masuk akal sebagai tanggal.
Contoh
SELECT WEEKOFYEAR(20301125);
Hasil:
+----------------------+| WEEKOFYEAR (20301125) |+----------------------+| 48 |+----------------------+
Atau bahkan yang berikut (yang menggunakan tahun dua digit):
SELECT WEEKOFYEAR(301125);
Hasil:
+--------------------+| WEEKOFYEAR(301125) |+------+| 48 |+--------------------+
Tapi itu harus masuk akal sebagai kencan. Inilah yang terjadi jika saya menambah bagian hari menjadi hari yang tidak valid:
SELECT WEEKOFYEAR(20301135);
Hasil:
+----------------------+| WEEKOFYEAR (20301135) |+----------------------+| NULL |+------------+1 baris di set, 1 peringatan (0,000 detik)
Itu mengembalikan null
dengan peringatan.
Mari kita lihat peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ---------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- --------+| Peringatan | 1292 | Nilai datetime salah:'20301135' |+---------+------+------------------------ --------------+
Pembatas Lainnya
Anda dapat menggunakan pembatas lain untuk tanggal. MariaDB cukup pemaaf dalam hal pembatas tanggal. Berikut adalah beberapa contoh yang valid:
SELECT
WEEKOFYEAR('2030/06/25'),
WEEKOFYEAR('2030,06,25'),
WEEKOFYEAR('2030:06:25'),
WEEKOFYEAR('2030;06!25');
Hasil (menggunakan keluaran vertikal):
WEEKOFYEAR('2030/06/25'):26WEEKOFYEAR('2030,06,25'):26WEEKOFYEAR('2030:06:25'):26WEEKOFYEAR('2030;06!25'):26Tanggal Saat Ini
Kita dapat melewati
NOW()
sebagai argumen datetime untuk menggunakan tanggal saat ini:SELECT NOW(), WEEKOFYEAR(NOW());
Hasil:
+---------------------+-------------------+| SEKARANG() | WEEKOFYEAR(SEKARANG()) |+---------------------+-------------------+ | 2021-05-17 09:42:13 | 20 |+---------------------+-------------------+Argumen Tidak Valid
Saat memberikan argumen yang tidak valid,
WEEKOFYEAR()
mengembalikannull
:SELECT WEEKOFYEAR('2030-65-78');
Hasil:
+--------------------------+| WEEKOFYEAR('2030-65-78') |+--------------------------+| NULL |+--------------------------+1 baris di set, 1 peringatan (0,000 detik)Ayo tunjukkan peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- -----------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- ----------+| Peringatan | 1292 | Nilai datetime salah:'2030-65-78' |+---------+------+-------------------- --------------------+Argumen Tidak Ada
Memanggil
WEEKOFYEAR()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:SELECT WEEKOFYEAR();
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'WEEKOFYEAR'Dan contoh lain:
SELECT WEEKOFYEAR('2030-12-10', 1);
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'WEEKOFYEAR'