I MariaDB, DAYNAME()
er en indbygget dato- og tidsfunktion, der returnerer navnet på ugedagen for en given dato.
Den accepterer ét argument, som er den dato, du vil udtrække dagens navn fra.
Syntaks
Syntaksen ser sådan ud:
DAYNAME(date)
Hvor date
er datoen for at få dagens navn fra.
Eksempel
Her er et eksempel:
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAVN('2045-10-17') |+----------------------------+| Tirsdag |+------------------------------+
Sprog
Sproget, der bruges til dagsnavnet, styres af værdien af lc_time_names
systemvariabel.
Her er et eksempel, der viser, hvordan dette påvirker resultatet:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAVN('2045-10-17') |+----------------------------+| tirsdag |+------------------------------+
Og skifter tilbage til en_US
, som er standard:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAVN('2045-10-17') |+----------------------------+| Tirsdag |+------------------------------+
Her er en liste over lokaliteter, der understøttes af MariaDB, og her er, hvordan du returnerer din egen liste over tilgængelige lokaliteter.
Mens vi er i gang, er her et indlæg, der forklarer, hvordan du kontrollerer værdien af dine lc_time_names
systemvariabel.
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT DAYNAME('2030-01-25 10:30:45');
Resultat:
+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | Fredag |+--------------------------------+
Nul dage
At have en dag nul i datoen returnerer null
:
SELECT DAYNAME('2030-00-00');
Resultat:
+------------------------------+| DAGNAVN('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 DAYNAME(20201108);
Resultat:
+------------------------+| DAGNAVN(20201108) |+------------------------+| Søndag |+--------------------+
Tocifrede årstal er fint:
SELECT DAYNAME(201108);
Resultat:
+----------------+| DAGNAVN(201108) |+-----------------+| Søndag |+-----------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger månedsdelen til en ugyldig måned:
SELECT DAYNAME(209908);
Resultat:
+----------------+| DAGNAVN(209908) |+-----------------+| 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
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19');
Resultat (ved hjælp af lodret output):
DAYNAME('2027/08/19'):ThursdayDAYNAME('2027,08,19'):ThursdayDAYNAME('2027:08:19'):ThursdayDAYNAME('2027;08!19'):torsdagAktuel dato
Vi kan sende
NOW()
som dato-argument for at bruge den aktuelle dato:SELECT NOW(), DAYNAME(NOW());
Resultat:
+---------------------+----------------+| NU() | DAGNAVN(NU()) |+---------------------+----------------+| 13-05-2021 13:29:10 | Torsdag |+---------------------+----------------+Ugyldige argumenter
Når et ugyldigt argument blev sendt,
DAYNAME()
returnerernull
:SELECT DAYNAME('Dang!');
Resultat:
+------------------------+| DAYNAME('Dang!') |+------------------------+| NULL |+------------------+Manglende argument
Kalder
DAYNAME()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT DAYNAME();
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYNAME'Og endnu et eksempel:
SELECT DAYNAME('2030-01-25', '2045-05-08');
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYNAME'