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.