Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 ошибка to_timestamp  [new]
knm
Member

Откуда:
Сообщений: 1
Добрый день.
При переходе с версии 9.6 на версию 13 столкнулся с такой ошибкой:

SELECT to_timestamp('2021-02-24T11:53:10+00:00', 'YYYY-MM-DD HH24:MI:SS');


стал выдавать

SQL Error [22007]: ОШИБКА: неверное значение "T1" для "HH24"
Подробности: Значение должно быть целым числом.

Попробовал другие версии - корректно работает в 9.6, 10 и 11 версии , а в 12 и 13 не работает.
Кто-нибудь знает - это то что в документации к 12-му релизу написано:

Adjust to_timestamp()/to_date() functions to be more forgiving of template mismatches (Artur Zakirov, Alexander Korotkov, Liudmila Mantrova)

This new behavior more closely matches the Oracle functions of the same name.

?

Можно заставить Postgres понимать разделитель T между датой и временем без изменения формата?
8 июн 21, 12:55    [22332805]     Ответить | Цитировать Сообщить модератору
 Re: ошибка to_timestamp  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
knm,

Нет нельзя... то что оно раньше работало это явный баг с моей точки зрения.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
8 июн 21, 14:00    [22332876]     Ответить | Цитировать Сообщить модератору
 Re: ошибка to_timestamp  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53436
Если я правильно читаю https://www.postgresql.org/docs/current/functions-formatting.html , то должно работать
to_timestamp('2021-02-24T11:53:10+00:00', 'FXYYYY-MM-DD HH24:MI:SS')

поскольку
If FX is specified, a separator in the template string matches exactly one character in the input string. But note that the input string character is not required to be the same as the separator from the template string. For example, to_timestamp('2000/JUN', 'FXYYYY MON') works
9 июн 21, 13:56    [22333292]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить