sql >> Databasteknik >  >> RDS >> Mysql

2 funktioner som returnerar månadens namn från ett datum i MySQL

Följande två funktioner gör det möjligt för oss att få månadsnamnet från ett datum i MySQL.

MONTHNAME() Funktion

MONTHNAME() Funktionen är utformad speciellt för att returnera månadens namn från ett datum. För att göra detta, skicka datumet till funktionen när du anropar den. Hela månadens namn returneras.

Exempel:

SELECT MONTHNAME('2030-10-25');

Resultat:

October

Språket som används för månadsnamnet styrs av värdet för lc_time_names systemvariabel. Se MONTHNAME() Exempel för ett exempel på hur detta påverkar produktionen. Se även Hur man ställer in lokalen för den aktuella anslutningen i MySQL för mer information.

DATE_FORMAT() Funktion

DATE_FORMAT() funktion returnerar ett givet datum i ett specificerat format. För att använda denna funktion, ange datum och önskat format när du anropar funktionen.

Du kan returnera hela månadens namn genom att skicka %M som formatsträng.

Exempel:

SELECT DATE_FORMAT('2030-12-25', '%M');

Resultat:

December

Språket som används för månadsnamnet styrs av värdet för lc_time_names systemvariabel.

Kort månadsnamn

Skickar %b till DATE_FORMAT() funktion returnerar det korta månadsnamnet.

Exempel:

SELECT DATE_FORMAT('2030-12-25', '%b');

Resultat:

Dec

Detta kan replikeras med MONTHNAME() funktion genom att använda LEFT() för att ta de första 3 tecknen från månadsnamnet.

Exempel:

SELECT LEFT(MONTHNAME('2030-12-25'), 3);

Resultat:

Dec

Samma koncept kan uppnås genom att konvertera resultatet av MONTHNAME() till en datatyp på tre tecken med en funktion som CAST() .

Men även om detta tillvägagångssätt fungerar i en_US , det kanske inte alltid fungerar som förväntat på andra språk. Till exempel:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2030-12-25', '%b') AS "Short 1",
    LEFT(MONTHNAME('2030-12-25'), 3) AS "Short 2",
    MONTHNAME('2030-12-25') AS "Full";

Resultat:

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ธ.ค.     | ธัน        | ธันวาคม                |
+----------+-----------+-----------------------+

  1. Hur kan jag veta när SQL Full Text Index Population är klar?

  2. SQL-fråga för trädtabell

  3. Alternativ till att använda LIMIT nyckelord i en underfråga i MYSQL

  4. Hur återställer man data från en raderad Docker-behållare? Hur återansluter man den till data?