MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come ottenere il nome breve del mese da una data in MariaDB

In MariaDB, puoi usare DATE_FORMAT() funzione per restituire varie parti di data da una data. Una delle cose che puoi restituire è il nome breve del mese. Ad esempio Nov o Dec (invece di November o December ).

L'identificatore di formato "Nome del mese breve" (%b )

La chiave per restituire il nome breve del mese quando si utilizza DATE_FORMAT() la funzione consiste nell'utilizzare l'identificatore di formato applicabile.

In MariaDB, l'identificatore di formato per il nome breve del mese è:%b

Esempio

Ecco un esempio da dimostrare:

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

Risultato:

+---------------------------------+
| DATE_FORMAT('2023-12-25', '%b') |
+---------------------------------+
| Dec                             |
+---------------------------------+

Ecco un altro esempio che ripercorre i vari mesi dell'anno:

SELECT 
    DATE_FORMAT('2023-01-25', '%b') AS "1",
    DATE_FORMAT('2023-02-25', '%b') AS "2",
    DATE_FORMAT('2023-03-25', '%b') AS "3",
    DATE_FORMAT('2023-04-25', '%b') AS "4",
    DATE_FORMAT('2023-05-25', '%b') AS "5",
    DATE_FORMAT('2023-06-25', '%b') AS "6",
    DATE_FORMAT('2023-07-25', '%b') AS "7",
    DATE_FORMAT('2023-08-25', '%b') AS "8",
    DATE_FORMAT('2023-09-25', '%b') AS "9",
    DATE_FORMAT('2023-10-25', '%b') AS "10",
    DATE_FORMAT('2023-11-25', '%b') AS "11",
    DATE_FORMAT('2023-12-25', '%b') AS "12";

Risultato (usando l'output verticale):

 1: Jan
 2: Feb
 3: Mar
 4: Apr
 5: May
 6: Jun
 7: Jul
 8: Aug
 9: Sep
10: Oct
11: Nov
12: Dec

Puoi restituire anche altre unità di data e ora, ma questo articolo riguarda specificamente la restituzione del nome breve del mese. Consulta le stringhe di formato MariaDB per un elenco di identificatori di formato che possono essere utilizzati con DATE_FORMAT() .

Altri approcci

Esistono altri modi per ottenere il nome breve del mese da una data che comporta l'interruzione della prima parte del mese.

Tuttavia, questo può essere più soggetto a errori rispetto al metodo sopra (inoltre è più contorto). Potresti ottenere dei risultati imprevisti quando usi questo metodo, specialmente quando lavori con lingue diverse.

Ecco alcuni esempi per dimostrare cosa intendo.

Invece di usare il %b identificatore di formato come abbiamo fatto nell'esempio precedente, potremmo usare il %M specificatore di formato per restituire il nome completo del mese, quindi restituire abbreviare il risultato con una funzione come LEFT() .

Esempio:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;

Risultato:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

In alternativa potremmo usare una funzione come CAST() per convertire in un tipo di dati con solo tre caratteri, come questo:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;

Risultato:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Funziona bene quando si lavora con la lingua inglese (e forse alcune altre lingue). Ma vediamo cosa succede quando passiamo a un'altra lingua, ad esempio tailandese:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

Risultato:

+--------------------+-----------+
| Full               | Short     |
+--------------------+-----------+
| ตุลาคม              | ตุล        |
+--------------------+-----------+

Tuttavia, ecco cosa succede quando utilizziamo il %b identificatore di formato per restituire il nome breve del mese:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

Risultato:

+--------------------+----------+
| Full               | Short    |
+--------------------+----------+
| ตุลาคม              | ต.ค.     |
+--------------------+----------+

Restituisce un risultato diverso.

Quindi consiglierei di utilizzare il %b identificatore di formato quando possibile.