MySQL har ett gäng olika funktioner som gör att vi kan hämta olika datumdelar – som dag, månad och år – från ett datum.
DATE_FORMAT()
Funktion
DATE_FORMAT()
Funktionen är bra om du vill returnera datumdelarna i ett enda fält.
Exempel:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');
Resultat:
Wednesday, 19th December 2035
Du kan också returnera bara de korta dag- och månadsnamnen om det är det önskade resultatet:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');
Resultat:
Wed, 19th Dec 2035
Eller så kan du returnera dagmånadsnummer:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');
Resultat:
19/12/2035
Du kan också returnera varje datumdel i sitt eget fält, om det behövs:
SELECT
DATE_FORMAT('2035-12-19', '%d') AS Day,
DATE_FORMAT('2035-12-19', '%c') AS Month,
DATE_FORMAT('2035-12-19', '%Y') AS Year;
Resultat:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
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. Se MySQL DATE_FORMAT()
Exempel för mer.
EXTRACT()
Funktion
EXTRACT()
funktionen låter dig extrahera en specificerad enhet från datumet. Därför kan du använda den för att extrahera dagen, månaden och året (liksom andra enheter) från datumet.
Exempel:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Resultat:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Funktioner för att returnera en specifik datumenhet
MySQL har också några 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
MySQL har mer än en funktion för att returnera dagen. Detta beror på att det finns mer än ett sätt att representera dagen. MySQL behöver veta om du vill ha dagsnamnet, veckodagens nummer, månadsdagen, dagen på året osv.
DAYNAME()
funktion returnerar veckodagsnamnet:
SELECT DAYNAME('2035-12-19');
Resultat:
Wednesday
DAYOFMONTH()
Funktion
DAYOFMONTH()
funktion returnerar numret på dagen i månaden.
Exempel:
SELECT DAYOFMONTH('2035-12-19');
Resultat:
19
DAY()
Funktion
DAY()
funktion är faktiskt en synonym för DAYOFMONTH()
funktion.
Exempel:
SELECT DAY('2035-12-19');
Resultat:
19
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('2035-12-19');
Resultat:
4
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('2035-12-19');
Resultat:
2
DAYOFYEAR()
Funktion
DAYOFYEAR()
funktion returnerar dagen på året för datumet, i intervallet 1
till 366
.
Exempel:
SELECT DAYOFYEAR('2035-12-19');
Resultat:
353
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('2035-12-19');
Resultat:
12
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('2035-12-19');
Resultat:
December
YEAR()
Funktion
YEAR()
funktion returnerar årsdelen av datumet.
Exempel:
SELECT YEAR('2035-12-19');
Resultat:
2035