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.