sql >> Databasteknik >  >> RDS >> MariaDB

Hur DAYNAME() fungerar i MariaDB

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'):torsdag 

Aktuellt 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() returnerar null :

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'

  1. SQLite-data till en RecyclerView

  2. Toppfrågor på primärnyckel i Oracle med exempel

  3. hur lägger man till superprivilegier till mysql-databasen?

  4. ALTERNATIV (OMKOMPILERA) är alltid snabbare; Varför?