sql >> Database >  >> RDS >> Mysql

Hoe de korte maandnaam van een datum in MySQL te krijgen

In MySQL kunt u de DATE_FORMAT() . gebruiken functie met de %b formaatspecificatie om de korte naam van de maand te retourneren. U kunt bijvoorbeeld Jan . retourneren of Feb in plaats van January of February .

Voorbeeld

SELECT DATE_FORMAT('2035-01-18', '%b');

Resultaat:

Jan

Hier is nog een voorbeeld dat door de verschillende maanden van het jaar loopt:

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

Resultaat (met verticale uitvoer):

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

U kunt ook andere datum- en tijdseenheden retourneren, maar dit artikel gaat helemaal over het retourneren van de korte maandnaam.

Zie MySQL-specificaties voor datumindeling voor een lijst met opmaakspecificaties die kunnen worden gebruikt met DATE_FORMAT() .

De naam van de volledige maand inkorten

Als u de naam van een volledige maand moet inkorten, kunt u altijd een functie gebruiken zoals LEFT() om alleen de eerste drie tekens terug te geven (of hoeveel je er ook nodig hebt).

Voorbeeld:

SELECT 
    DATE_FORMAT('2035-09-18', '%M') AS Full,
    LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;

Resultaat:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+

We kunnen ook een functie gebruiken zoals CAST() om te converteren naar een gegevenstype met slechts drie tekens, zoals dit:

SELECT 
    DATE_FORMAT('2035-09-18', '%M') AS Full,
    CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;

Resultaat:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+
1 row in set, 1 warning (0.00 sec)

In dit geval krijgen we een waarschuwing omdat we een langere waarde afkappen:

show warnings;

Resultaat:

+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' |
+---------+------+------------------------------------------------+

Het op deze manier verkorten van de naam van de maand kan prima zijn bij het werken met talen zoals Engels, maar houd er rekening mee dat dit mogelijk niet hetzelfde resultaat oplevert als bij het gebruik van de %b formaat specificatie.

Om te demonstreren wat ik bedoel, is dit wat er gebeurt als ik mijn sessie omschakel naar de Thaise taal:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
    DATE_FORMAT('2023-10-25', '%b') AS Short;

Resultaat:

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

Het afkappen van de naam van de volledige maand geeft een ander resultaat dan het gebruik van de %b formaatspecificatie om de korte naam van de maand te retourneren.


  1. Partitieonderhoud verbeteren met incrementele statistieken

  2. Parallelle uitvoeringsplannen - takken en draden

  3. Analyseer Big Data met Microsoft Azure Tools

  4. UTC_TIME Voorbeelden – MySQL