I MariaDB, WEEKDAY()
er en indbygget dato- og tidsfunktion, der returnerer ugedagen fra en given dato.
Den accepterer ét argument, som er den dato, du vil udtrække ugedagen fra.
Det returnerer dagen som et tal. Indeksnummereringen starter ved nul for mandag (dvs. 0
). =mandag, 1
=tirsdag osv.). Dette er i modsætning til DAYOFWEEK()
, som overholder ODBC-standarden (1
=søndag, 2
=mandag osv.).
Syntaks
Syntaksen ser sådan ud:
WEEKDAY(date)
Hvor date
er den dato, man henter ugedagen fra.
Eksempel
Her er et eksempel:
SELECT WEEKDAY('2030-01-25');
Resultat:
+------------------------------+| WEEKDAY('2030-01-25') |+-----------------------------+| 4 |+------------------------------+
Sammenlignet med Dagens navn
Her er endnu en ved siden af DAYNAME()
for at returnere dagens navn:
SELECT
WEEKDAY('2030-01-21'),
DAYNAME('2030-01-21');
Resultat:
+------------------------+---------- -+| WEEKDAY('2030-01-21') | DAGNAVN('2030-01-21') |+----------------------+-------------------- ----------+| 0 | mandag |+------------------------------------------------ +
Som nævnt starter indeksnummereringen ved 0 for mandag.
Her er søndag:
SELECT
WEEKDAY('2030-01-20'),
DAYNAME('2030-01-20');
Resultat:
+------------------------+---------- -+| WEEKDAY('2030-01-20') | DAGNAVN('2030-01-20') |+----------------------------+------------------- ----------+| 6 | Søndag |+------------------------+----------- +
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT WEEKDAY('2030-01-24 10:30:45');
Resultat:
+--------------------------------+| WEEKDAY('2030-01-24 10:30:45') |+----------------------------------------+ | 3 |+--------------------------------+
Nul dage
Nul dage resulterer i null
.
Eksempel:
SELECT WEEKDAY('2030-00-00');
Resultat:
+------------------------------+| WEEKDAY('2030-00-00') |+----------------------------+| NULL |+------------------------------+
Numeriske datoer
Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.
Eksempel
SELECT WEEKDAY(20300125);
Resultat:
+------------------------+| WEEKDAY(20300125) |+--------------------+| 4 |+--------------------+
Eller endda følgende (som bruger et tocifret årstal):
SELECT WEEKDAY(300125);
Resultat:
+----------------+| UGEDAG(300125) |+-----------------+| 4 |+-----------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:
SELECT WEEKDAY(20300135);
Resultat:
+------------------------+| UGEDAG(20300135) |+------------------------+| NULL |+--------------------+
Andre afgrænsninger
Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:
SELECT
WEEKDAY('2030/01/25'),
WEEKDAY('2030,01,25'),
WEEKDAY('2030:01:25'),
WEEKDAY('2030;01!25');
Resultat (ved hjælp af lodret output):
WEEKDAY('2030/01/25'):4WEEKDAY('2030,01,25'):4WEEKDAY('2030:01:25'):4WEEKDAY('2030;01!25'):4Aktuel dato
Vi kan sende
NOW()
som dato-argument for at bruge den aktuelle dato:SELECT NOW(), WEEKDAY(NOW());
Resultat:
+---------------------+----------------+| NU() | UGEDAG(NU()) |+------------------------+----------------+| 15-05-2021 09:44:50 | 5 |+---------------------+----------------+Ugyldige argumenter
Når et ugyldigt argument sendes,
WEEKDAY()
returnerernull
:SELECT WEEKDAY('Homer');
Resultat:
+------------------------+| WEEKDAY('Homer') |+------------------------+| NULL |+------------------+Manglende argument
Kalder
WEEKDAY()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT WEEKDAY();
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'WEEKDAY'Og endnu et eksempel:
SELECT WEEKDAY('2030-01-25', '2045-05-08');
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'WEEKDAY'