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