sql >> Databasteknik >  >> RDS >> MariaDB

3 sätt att få månadens namn från ett datum i MariaDB

Här är tre sätt att returnera månadsnamnet från ett datum i MariaDB.

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 kommer att returneras.

Exempel:

SELECT MONTHNAME('2021-08-19');

Resultat:

+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August                  |
+-------------------------+

Språket som används för månadsnamnet styrs av värdet på lc_time_names systemvariabel. Se MONTHNAME() för ett exempel på hur detta påverkar utdata.

DATE_FORMAT() Funktion

DATE_FORMAT() funktion formaterar ett givet datum till ett specificerat format. Du anger datum och format när du anropar funktionen.

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

Exempel:

SELECT DATE_FORMAT('2021-08-19', '%M');

Resultat:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August                          |
+---------------------------------+

Som med MONTHNAME() , språket som används för månadsnamnet styrs av värdet på lc_time_names systemvariabel. Men DATE_FORMAT() funktion accepterar ett valfritt tredje argument som låter dig specificera språket.

Här är ett exempel på hur du anger en plats:

SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');

Resultat:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost                                    |
+------------------------------------------+

Kort månadsnamn

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

Exempel:

SELECT DATE_FORMAT('2021-08-19', '%b');

Resultat:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug                             |
+---------------------------------+

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('2021-08-19'), 3);

Resultat:

+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug                              |
+----------------------------------+

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 på andra språk. Till exempel:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
    LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
    MONTHNAME('2021-08-19') AS "Full";

Resultat:

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ส.ค.     | สิง        | สิงหาคม                |
+----------+-----------+-----------------------+


  1. MySQL:Felkod:1118 Radstorleken är för stor (> 8126). Ändra vissa kolumner till TEXT eller BLOB

  2. Installera utf8-kollation i PostgreSQL

  3. Hur man importerar en databas med phpMyAdmin

  4. Hur man bara lagrar tid; inte datum och tid?