In PostgreSQL, wenn Sie bereits einen Monats-Namen haben , aber Sie möchten diesen Namen in die Zahl des Monats umwandeln , können Sie dies mit EXTRACT() tun Funktion.
Beispiel 1:Vollständiger Monatsname
Hier ist ein einfaches Beispiel für die Umwandlung eines Monatsnamens in die entsprechende Monatsnummer.
SELECT EXTRACT(MONTH FROM TO_DATE('December', 'Month')) AS "Month Number";
Ergebnis:
Month Number
--------------
12
Beispiel 2:Kurzer Monatsname
Es funktioniert auch mit kurzen Monatsnamen. Kürzen Sie in diesem Fall einfach den Template-String von 'Month' zu 'Mon' (zweites Argument von TO_DATE() Funktion).
SELECT EXTRACT(MONTH FROM TO_DATE('Dec', 'Mon')) AS "Month Number";
Ergebnis:
Month Number
--------------
12
Beispiel 3:Längere Daten
Es funktioniert auch, wenn Sie ein längeres Datum angeben (nicht nur den Monatsnamen).
SELECT EXTRACT(
MONTH FROM TO_DATE('December 20, 2020', 'Month')
) AS "Month Number";
Ergebnis:
Month Number
--------------
12
Beispiel 4:Zeitstempel verwenden
Hier ist ein Beispiel mit TO_TIMESTAMP() statt TO_DATE() .
SELECT EXTRACT(MONTH FROM TO_TIMESTAMP('Dec 2020', 'Mon')) AS "Month Number";
Ergebnis:
Month Number
--------------
12