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'