Я предполагаю, что "YYYY-MM-DD HH:MM:SS"
в вашем вопросе на самом деле является реальным значением временной метки, например 2018-07-13 18:55:42
, а не символами, которые вы указали.
to_char()
ожидает значение date
или timestamp
и преобразует его в строку. Вы хотите по-другому: преобразовать строку в метку времени. Для этого вам нужно использовать to_timestamp()
to_timestamp('{"Date/Time": "2018-07-13 18:55:42"}'::json ->> 'Date/Time', 'YYYY-MM-DD HH24:MI:SS')
возвращает значение как фактическое значение timestamp
. Если вы хотите DATE
, а не timestamp
, вы можете использовать to_date()
вместо to_timestamp()
. Если вы хотите отформатировать это так, чтобы отображались только год и месяц, вы можете отформатировать этот timestamp с использованием to_char()
to_char(to_timestamp('{"Date/Time": "2018-07-13 18:55:42"}'::json ->> 'Date/Time', 'YYYY-MM-DD HH24:MI:SS'),
'yyyy-mm') as datetime