Di MariaDB, DAYOFWEEK()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan hari dalam seminggu dari tanggal tertentu.
Ia menerima satu argumen, yang merupakan tanggal Anda ingin mengekstrak hari dalam seminggu.
Ini mengembalikan hari sebagai angka. Penomoran indeks mengikuti standar ODBC (1
=Minggu, 2
=Senin, dll). Ini berbeda dengan WEEKDAY()
, di mana 0
=Senin, 1
=Selasa, dll.
Sintaks
Sintaksnya seperti ini:
DAYOFWEEK(date)
Dimana date
adalah tanggal untuk mendapatkan hari.
Contoh
Ini contohnya:
SELECT DAYOFWEEK('2030-01-25');
Hasil:
+-------------------------+| DAYOFWEEK('2030-01-25') |+-------------------------+| 6 |+-------------------------+
Dibandingkan dengan Nama Hari
Ini satu lagi, di samping DAYNAME()
untuk mengembalikan nama hari:
SELECT
DAYOFWEEK('2030-01-20'),
DAYNAME('2030-01-20');
Hasil:
+-------------------------+-------------------- ---+| DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |+-------------------------+------------ -----------+| 1 | Minggu |+------------------------+--------------------- --+
Seperti yang disebutkan, penomoran indeks dimulai dari 1 untuk hari Minggu.
Ini hari Sabtu:
SELECT
DAYOFWEEK('2030-01-19'),
DAYNAME('2030-01-19');
Hasil:
+-------------------------+-------------------- ---+| DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |+-------------------------+------------ -----------+| 7 | Sabtu |+-------------------------+--------------------- --+
Nilai Tanggal-waktu
Ini juga berfungsi dengan nilai datetime:
SELECT DAYOFWEEK('2030-01-24 10:30:45');
Hasil:
+----------------------------------+| DAYOFWEEK('2030-01-24 10:30:45') |+--------------------------------- -+| 5 |+-----------------------------------+
Nol Hari
Hasil nol hari dalam null
.
Contoh:
SELECT DAYOFWEEK('2030-00-00');
Hasil:
+-------------------------+| DAYOFWEEK('2030-00-00') |+-------------------------+| NULL |+------------------------+
Tanggal Numerik
Dimungkinkan juga untuk melewatkan tanggal sebagai angka, asalkan masuk akal sebagai tanggal.
Contoh
SELECT DAYOFWEEK(20300125);
Hasil:
+---------------------+| DAYOFWEEK (20300125) |+---------------------+| 6 |+---------------------+
Atau bahkan yang berikut (yang menggunakan tahun dua digit):
SELECT DAYOFWEEK(300125);
Hasil:
+-------------------+| DAYOFWEEK(300125) |+-------------------+| 6 |+-------------------+
Tapi itu harus masuk akal sebagai kencan. Inilah yang terjadi jika saya menambah bagian hari menjadi hari yang tidak valid:
SELECT DAYOFWEEK(20300135);
Hasil:
+---------------------+| DAYOFWEEK (20300135) |+---------------------+| NULL |+---------------------+
Pembatas Lainnya
Anda dapat menggunakan pembatas lain untuk tanggal. MariaDB cukup pemaaf dalam hal pembatas tanggal. Berikut adalah beberapa contoh yang valid:
SELECT
DAYOFWEEK('2030/01/25'),
DAYOFWEEK('2030,01,25'),
DAYOFWEEK('2030:01:25'),
DAYOFWEEK('2030;01!25');
Hasil (menggunakan keluaran vertikal):
DAYOFWEEK('2030/01/25'):6DAYOFWEEK('2030,01,25'):6DAYOFWEEK('2030:01:25'):6DAYOFWEEK('2030;01!25'):6Tanggal Saat Ini
Kita dapat melewati
NOW()
sebagai argumen tanggal untuk menggunakan tanggal saat ini:SELECT NOW(), DAYOFWEEK(NOW());
Hasil:
+---------------------+------------------+| SEKARANG() | DAYOFWEEK(SEKARANG()) |+---------------------+------------------+| 2021-05-15 09:17:44 | 7 |+---------------------+------------------+Argumen Tidak Valid
Saat memberikan argumen yang tidak valid,
DAYOFWEEK()
mengembalikannull
:SELECT DAYOFWEEK('Homer');
Hasil:
+--------------------+| DAYOFWEEK('Homer') |+------+| NULL |+--------------------+Argumen Tidak Ada
Memanggil
DAYOFWEEK()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:SELECT DAYOFWEEK();
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'DAYOFWEEK'Dan contoh lain:
SELECT DAYOFWEEK('2030-01-25', '2045-05-08');
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'DAYOFWEEK'