sql >> Databasteknik >  >> RDS >> Mysql

Returnera dag, månad och år i MySQL

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

  1. Showplan Förbättringar för UDF:er

  2. Hur man säkerhetskopierar och återställer en PostgreSQL-databas

  3. ta bort dubbletter av rader från Oracle

  4. Lär dig mer om DBMS_OUTPUT-paketet i Oracle