В PostgreSQL, ако вече имате име на месец , но искате да преобразувате това име в номер на месеца , можете да направите това с EXTRACT() функция.
Пример 1:Пълно име на месец
Ето основен пример за преобразуване на името на месец в съответния номер на месец.
SELECT EXTRACT(MONTH FROM TO_DATE('December', 'Month')) AS "Month Number";
Резултат:
Month Number
--------------
12
Пример 2:Кратко име на месеца
Работи и при къси имена на месеци. В този случай просто съкратете низа на шаблона от 'Month' до 'Mon' (втори аргумент на TO_DATE() функция).
SELECT EXTRACT(MONTH FROM TO_DATE('Dec', 'Mon')) AS "Month Number";
Резултат:
Month Number
--------------
12
Пример 3:По-дълги дати
Работи и когато посочите по-дълга дата (не само името на месеца).
SELECT EXTRACT(
MONTH FROM TO_DATE('December 20, 2020', 'Month')
) AS "Month Number";
Резултат:
Month Number
--------------
12
Пример 4:Използване на Timestamp
Ето пример за използване на TO_TIMESTAMP() вместо TO_DATE() .
SELECT EXTRACT(MONTH FROM TO_TIMESTAMP('Dec 2020', 'Mon')) AS "Month Number";
Резултат:
Month Number
--------------
12