Om du är bekant med PostgreSQL kanske du vet att du kan använda EXTRACT()
och DATE_PART()
funktioner för att extrahera månaden från ett datum. Men de funktionerna låter dig bara extrahera månadens nummer .
Vad händer om du behöver månadens namn ?
Du kan få månadsnamnet från ett datum genom att använda TO_CHAR()
fungera. Den här funktionen returnerar en sträng baserat på tidsstämpeln och mallen du anger som argument.
Exempel
Här är ett snabbt exempel.
SELECT TO_CHAR(TIMESTAMP '2020-12-16 10:41:35', 'Month') AS "Month";
Resultat:
Month ----------- December
I det här fallet angav jag ett mallmönster för 'Month'
, så detta gjorde att månaden returnerades från tidsstämpelvärdet.
Små bokstäver, versaler och versaler
Du kan returnera månaden med gemener, versaler eller versaler. Du bestämmer vilken av fallet du använder för mallmönstret (andra argumentet).
Här är ett exempel för att visa vad jag menar.
SELECT TO_CHAR(current_timestamp, 'month') AS "month", TO_CHAR(current_timestamp, 'Month') AS "Month", TO_CHAR(current_timestamp, 'MONTH') AS "MONTH";
Resultat:
month | Month | MONTH -----------+-----------+----------- march | March | MARCH
Alla resultat är blankstoppade till 9 tecken, oavsett vilket fall som används.
Kort månadsnamn
Du kan också ange att resultatet formateras med det korta månadsnamnet.
SELECT TO_CHAR(current_timestamp, 'mon') AS "mon", TO_CHAR(current_timestamp, 'Mon') AS "Mon", TO_CHAR(current_timestamp, 'MON') AS "MON";
Resultat:
mon | Mon | MON -----+-----+----- mar | Mar | MAR