Вы можете использовать to_date
:
SELECT to_date('15jan2018', 'DDmonYYYY');
to_date
------------
2018-01-15
(1 row)
Затем используйте to_char
для преобразования его в любой формат, который вы хотите:
SELECT to_char(to_date('15jan2018', 'DDmonYYYY'), 'DDMONYYYY');
to_char
-----------
15JAN2018
(1 row)
Конечно, вы можете просто использовать upper
в вашем конкретном случае, чтобы преобразовать его в верхний регистр, но я думаю, это не то, что вы ищете.
Наконец, функция ввода даты в PostgreSQL довольно гибкая, поэтому вы можете попробовать просто привести ее:
SELECT '15jan2018'::date;
date
------------
2018-01-15
(1 row)
Это полезно, если формат немного отличается.