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

Sådan får du det korte månedsnavn fra en dato i MariaDB

I MariaDB kan du bruge DATE_FORMAT() funktion til at returnere forskellige datodele fra en dato. En af de ting, du kan returnere, er det korte månedsnavn. For eksempel Nov eller Dec (i stedet for November eller December ).

Formatspecifikationen "Kort månedsnavn" (%b )

Nøglen til at returnere det korte månedsnavn, når du bruger DATE_FORMAT() funktionen er at bruge den relevante formatspecifikation.

I MariaDB er formatspecifikationen for det korte månedsnavn:%b

Eksempel

Her er et eksempel til demonstration:

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

Resultat:

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

Her er et andet eksempel, der løber gennem de forskellige måneder i året:

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";

Resultat (ved hjælp af lodret output):

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

Du kan også returnere andre dato- og tidsenheder, men denne artikel handler specifikt om at returnere det korte månedsnavn. Se MariaDB Format Strings for en liste over formatspecifikationer, der kan bruges med DATE_FORMAT() .

Andre tilgange

Der er andre måder at få det korte månedsnavn på fra en dato, der involverer afhugning af den første del af måneden.

Dette kan dog være mere udsat for fejl end ovenstående metode (plus det er mere indviklet). Du kan få nogle uventede resultater, når du bruger denne metode, især når du arbejder med forskellige sprog.

Her er nogle eksempler for at vise, hvad jeg mener.

I stedet for at bruge %b formatspecifikation som vi gjorde i det foregående eksempel, kunne vi bruge %M formatspecifikation for at returnere det fulde månedsnavn, og returner derefter forkort dette resultat med en funktion som LEFT() .

Eksempel:

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

Resultat:

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

Vi kunne alternativt bruge en funktion som CAST() at konvertere til en datatype med kun tre tegn, såsom dette:

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

Resultat:

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

Dette fungerer fint, når du arbejder med det engelske sprog (og måske nogle andre sprog). Men lad os se, hvad der sker, når vi skifter til et andet sprog – for eksempel thai:

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

Resultat:

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

Men her er hvad der sker, når vi bruger %b formatspecifikation for at returnere det korte månedsnavn:

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

Resultat:

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

Det giver et andet resultat.

Så jeg vil anbefale at bruge %b formatspecifikation, når det er muligt.


  1. Brug af GO i en transaktion

  2. Sådan sletter du en MySQL-post efter et bestemt tidsrum

  3. Sådan installeres SQL * PLUS-klient i linux

  4. Sådan formateres et tal som valuta i Oracle