MariaDB innehåller många funktioner för att arbeta med datum. Vissa av dessa extraherar vissa delar från sådana datum och returnerar dem som en sträng eller heltal.
Nedan finns 11 funktioner som du kan använda för att returnera olika datumdelar i MariaDB.
Funktionerna
Först, här är funktionerna:
DATE_FORMAT()
EXTRACT()
DAYNAME()
- DAYOFMONTH()
DAY()
DAYOFWEEK()
WEEKDAY()
DAYOFYEAR()
MONTH()
MONTHNAME()
YEAR()
Nedan finns exempel på varje funktion.
DATE_FORMAT()
Funktion
DATE_FORMAT()
funktionen låter dig formatera ett datum baserat på en formatsträng. Formatsträngen anger hur datumet ska formateras. Du konstruerar din egen formatsträng baserat på en eller flera formatspecifikationer.
Här är ett exempel på hur du använder DATE_FORMAT()
för att returnera dagen, månaden och året från ett datum:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Resultat:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
Det som är bra med den här funktionen är att du kan returnera många varianter av datumet. Till exempel kan du bara returnera de korta dag- och månadsnamnen:
SELECT DATE_FORMAT('2023-07-25', '%a, %D %b %Y');
Resultat:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%a, %D %b %Y') | +-------------------------------------------+ | Tue, 25th Jul 2023 | +-------------------------------------------+
Eller så kan du returnera dagmånadsnummer:
SELECT DATE_FORMAT('2023-07-25', '%d/%c/%Y');
Resultat:
+---------------------------------------+ | DATE_FORMAT('2023-07-25', '%d/%c/%Y') | +---------------------------------------+ | 25/7/2023 | +---------------------------------------+
Se den här fullständiga listan med formatspecifikationer för en fullständig genomgång av formatspecifikationerna du kan använda för att konstruera en formatsträng.
DATE_FORMAT()
accepterar också ett valfritt språkargument som du kan använda för att ange språket för dag- och månadsnamn. Det är en ganska flexibel funktion. Se DATE_FORMAT()
för fler exempel.
EXTRACT()
Funktion
funktionen låter dig extrahera en specificerad enhet från datumet. Så du kan använda den för att extrahera dagen, månaden och året (liksom andra enheter) från datumet.EXTRACT
()
Exempel:
SELECT
EXTRACT(DAY FROM '2023-07-25') AS Day,
EXTRACT(MONTH FROM '2023-07-25') AS Month,
EXTRACT(YEAR FROM '2023-07-25') AS Year;
Resultat:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 25 | 7 | 2023 | +------+-------+------+
Funktioner för att returnera en specifik datumenhet
MariaDB har också ett gäng mer specifika funktioner som returnerar en specifik datumenhet.
Nedan finns en lista över de funktioner som returnerar dag, månad och år från ett datum.
DAYNAME()
Funktion
Det finns en hel del funktioner för att returnera dagen i MariaDB (och de flesta andra DBMS). Detta beror på att MariaDB behöver veta om du vill ha dagsnamnet, veckodagens nummer, månadsdagen, årsdag osv.
DAYNAME()
funktion returnerar veckodagsnamnet.
Exempel:
SELECT DAYNAME('2023-07-25');
Resultat:
+-----------------------+ | DAYNAME('2023-07-25') | +-----------------------+ | Tuesday | +-----------------------+
DAYOFMONTH()
Funktion
DAYOFMONTH()
funktion returnerar numret på dagen i månaden.
Exempel:
SELECT DAYOFMONTH('2023-07-25');
Resultat:
+--------------------------+ | DAYOFMONTH('2023-07-25') | +--------------------------+ | 25 | +--------------------------+
DAY()
Funktion
DAY()
funktion är faktiskt en synonym för DAYOFMONTH()
funktion.
Exempel:
SELECT DAY('2023-07-25');
Resultat:
+-------------------+ | DAY('2023-07-25') | +-------------------+ | 25 | +-------------------+
Som förväntat, samma resultat som DAYOFMONTH()
.
DAYOFWEEK()
Funktion
DAYOFWEEK()
funktion returnerar veckodagens index för datumet, enligt ODBC-standarden (1
=söndag, 2
=måndag, …, 7
=lördag).
Exempel:
SELECT DAYOFWEEK('2023-07-25');
Resultat:
+-------------------------+ | DAYOFWEEK('2023-07-25') | +-------------------------+ | 3 | +-------------------------+
Se WEEKDAY()
nedan för olika indexering.
WEEKDAY()
Funktion
WEEKDAY()
funktionen liknar DAYOFWEEK()
genom att den returnerar veckoindex för datumet. Skillnaden är att den använder en annan indexnumrering (0
=måndag, 1
=tisdag, … 6
=söndag).
Exempel:
SELECT WEEKDAY('2023-07-25');
Resultat:
+-----------------------+ | WEEKDAY('2023-07-25') | +-----------------------+ | 1 | +-----------------------+
DAYOFYEAR()
Funktion
DAYOFYEAR()
funktion returnerar dagen på året för datumet, i intervallet 1
till 366
.
Exempel:
SELECT DAYOFYEAR('2023-07-25');
Resultat:
+-------------------------+ | DAYOFYEAR('2023-07-25') | +-------------------------+ | 206 | +-------------------------+
MONTH()
Funktion
MONTH()
funktion returnerar månaden i intervallet 1
till 12
för januari till december, eller 0
för datum som har en nollmånadsdel (som 0000-00-00
).
Exempel:
SELECT MONTH('2023-07-25');
Resultat:
+---------------------+ | MONTH('2023-07-25') | +---------------------+ | 7 | +---------------------+
MONTHNAME()
Funktion
Som namnet antyder, MONTHNAME()
funktion returnerar månadens namn. Språket som används för namnet styrs av värdet på lc_time_names
systemvariabel.
Exempel:
SELECT MONTHNAME('2023-07-25');
Resultat:
+-------------------------+ | MONTHNAME('2023-07-25') | +-------------------------+ | July | +-------------------------+
YEAR()
Funktion
YEAR()
funktion returnerar årsdelen av datumet.
Exempel:
SELECT YEAR('2023-07-25');
Resultat:
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+