У меня есть столбец, содержащий даты в формате yyyy-mm-dd
. Теперь я запускаю запрос SELECT
, который преобразует эту дату в dd/mm/yyyy
, используя TO_CHAR(dob :: DATE, 'dd/mm/yyyy') AS dob
, который отлично работает. Теперь проблема, с которой я столкнулся, заключается в том, что в этом столбце есть несколько плохих записей, ниже приведен образец таблицы с хорошей записью и плохой записью:
| id | dob |
|----|------------|
| 1 | 2019-12-31 | // this returns 31/12/2019
| 2 | 31-12-2019 | // BAD RECORD, this returns an error
|----|------------|
Ошибка, которую я получаю на id 2:
ERROR: date/time field value out of range: "31-12-2019"
HINT: Perhaps you need a different "datestyle" setting.
SQL state: 22008
Я бы хотел условно проверить, в порядке ли TO_CHAR(dob :: DATE, 'dd/mm/yyyy')
, иначе просто используйте доб без преобразования. Любой способ осуществить это?
Я использую Postges 12
try/catch
, и использовать ее в операторе select. - person Renato   schedule 20.03.2020