В 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