In MariaDB, DAYOFWEEK() is een ingebouwde datum- en tijdfunctie die de dag van de week vanaf een bepaalde datum retourneert.
Het accepteert één argument, namelijk de datum waaruit u de dag van de week wilt halen.
Het geeft de dag als een getal terug. De indexnummering voldoet aan de ODBC-standaard (1 =zondag, 2 =maandag, enz.). Dit in tegenstelling tot WEEKDAY() , waarbij 0 =maandag, 1 =dinsdag, enz.
Syntaxis
De syntaxis gaat als volgt:
DAYOFWEEK(date)
Waar date is de datum om de dag vanaf te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT DAYOFWEEK('2030-01-25'); Resultaat:
+-------------------------+
| DAYOFWEEK('2030-01-25') |
+-------------------------+
| 6 |
+-------------------------+ Vergeleken met de naam van de dag
Hier is er nog een, naast DAYNAME() om de naam van de dag terug te geven:
SELECT
DAYOFWEEK('2030-01-20'),
DAYNAME('2030-01-20'); Resultaat:
+-------------------------+-----------------------+
| DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |
+-------------------------+-----------------------+
| 1 | Sunday |
+-------------------------+-----------------------+ Zoals gezegd begint de indexnummering bij 1 voor zondag.
Hier is zaterdag:
SELECT
DAYOFWEEK('2030-01-19'),
DAYNAME('2030-01-19'); Resultaat:
+-------------------------+-----------------------+
| DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |
+-------------------------+-----------------------+
| 7 | Saturday |
+-------------------------+-----------------------+ Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT DAYOFWEEK('2030-01-24 10:30:45'); Resultaat:
+----------------------------------+
| DAYOFWEEK('2030-01-24 10:30:45') |
+----------------------------------+
| 5 |
+----------------------------------+ Nul dagen
Nul dagen resulteren in null .
Voorbeeld:
SELECT DAYOFWEEK('2030-00-00'); Resultaat:
+-------------------------+
| DAYOFWEEK('2030-00-00') |
+-------------------------+
| NULL |
+-------------------------+ Numerieke datums
Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.
Voorbeeld
SELECT DAYOFWEEK(20300125); Resultaat:
+---------------------+ | DAYOFWEEK(20300125) | +---------------------+ | 6 | +---------------------+
Of zelfs het volgende (met een jaartal van twee cijfers):
SELECT DAYOFWEEK(300125); Resultaat:
+-------------------+ | DAYOFWEEK(300125) | +-------------------+ | 6 | +-------------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:
SELECT DAYOFWEEK(20300135); Resultaat:
+---------------------+ | DAYOFWEEK(20300135) | +---------------------+ | NULL | +---------------------+
Andere scheidingstekens
U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:
SELECT
DAYOFWEEK('2030/01/25'),
DAYOFWEEK('2030,01,25'),
DAYOFWEEK('2030:01:25'),
DAYOFWEEK('2030;01!25'); Resultaat (met verticale uitvoer):
DAYOFWEEK('2030/01/25'): 6
DAYOFWEEK('2030,01,25'): 6
DAYOFWEEK('2030:01:25'): 6
DAYOFWEEK('2030;01!25'): 6 Huidige datum
We kunnen NOW() doorgeven als het datumargument om de huidige datum te gebruiken:
SELECT
NOW(),
DAYOFWEEK(NOW()); Resultaat:
+---------------------+------------------+ | NOW() | DAYOFWEEK(NOW()) | +---------------------+------------------+ | 2021-05-15 09:17:44 | 7 | +---------------------+------------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, DAYOFWEEK() retourneert null :
SELECT DAYOFWEEK('Homer'); Resultaat:
+--------------------+
| DAYOFWEEK('Homer') |
+--------------------+
| NULL |
+--------------------+ Ontbrekend argument
Bellen DAYOFWEEK() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DAYOFWEEK(); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFWEEK'
En nog een voorbeeld:
SELECT DAYOFWEEK('2030-01-25', '2045-05-08'); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFWEEK'