I MariaDB, DAYNAME()
är en inbyggd datum- och tidsfunktion som returnerar namnet på veckodagen för ett givet datum.
Den accepterar ett argument, vilket är det datum du vill extrahera dagens namn från.
Syntax
Syntaxen ser ut så här:
DAYNAME(date)
Där date
är datumet att hämta dagnamnet från.
Exempel
Här är ett exempel:
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAMN('2045-10-17') |+----------------------------+| Tisdag |+------------------------------+
Språk
Språket som används för dagsnamnet styrs av värdet på lc_time_names
systemvariabel.
Här är ett exempel som visar hur detta påverkar resultatet:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAMN('2045-10-17') |+----------------------------+| Tisdag |+------------------------------+
Och byter tillbaka till en_US
, vilket är standard:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');
Resultat:
+------------------------------+| DAGNAMN('2045-10-17') |+----------------------------+| Tisdag |+------------------------------+
Här är en lista över språk som stöds av MariaDB, och så här returnerar du din egen lista över tillgängliga språk.
Medan vi håller på, kommer här ett inlägg som förklarar hur du kontrollerar värdet på dina lc_time_names
systemvariabel.
Datetime-värden
Det fungerar också med datetime-värden:
SELECT DAYNAME('2030-01-25 10:30:45');
Resultat:
+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | Fredag |+--------------------------------+
Noll dagar
Att ha en nolldag i datumet returnerar null
:
SELECT DAYNAME('2030-00-00');
Resultat:
+------------------------------+| DAGNAMN('2030-00-00') |+-------------------------------+| NULL |+------------------------------+
Numeriska datum
Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.
Exempel
SELECT DAYNAME(20201108);
Resultat:
+------------------------+| DAGNAMN(20201108) |+------------------------+| Söndag |+--------------------+
Tvåsiffriga årtal är bra:
SELECT DAYNAME(201108);
Resultat:
+----------------+| DAGNAMN(201108) |+-----------------+| Söndag |+-----------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar månadsdelen till en ogiltig månad:
SELECT DAYNAME(209908);
Resultat:
+----------------+| DAGNAMN(209908) |+-----------------+| NULL |+-----------------+
Andra avgränsare
Du kan använda andra avgränsare för datumet. MariaDB är ganska förlåtande när det kommer till avgränsare på datum. Här är några giltiga exempel:
SELECT
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19');
Resultat (med vertikal utdata):
DAYNAME('2027/08/19'):ThursdayDAYNAME('2027,08,19'):ThursdayDAYNAME('2027:08:19'):ThursdayDAYNAME('2027;08!19'):torsdagAktuellt datum
Vi kan skicka
NOW()
som datumargument för att använda det aktuella datumet:SELECT NOW(), DAYNAME(NOW());
Resultat:
+----------------------------+----------------+| NU() | DAGNAMN(NU()) |+---------------------+----------------+| 2021-05-13 13:29:10 | Torsdag |+----------------------------+----------------+Ogiltiga argument
När ett ogiltigt argument skickades,
DAYNAME()
returnerarnull
:SELECT DAYNAME('Dang!');
Resultat:
+------------------------+| DAYNAME('Dang!') |+------------------------+| NULL |+------------------+Argument saknas
Ringer
DAYNAME()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:SELECT DAYNAME();
Resultat:
ERROR 1582 (42000):Fel parameterantal i anropet till den inbyggda funktionen 'DAYNAME'Och ett annat exempel:
SELECT DAYNAME('2030-01-25', '2045-05-08');
Resultat:
ERROR 1582 (42000):Fel parameterantal i anropet till den inbyggda funktionen 'DAYNAME'