"ERROR: date/time field value out of range" при использовании to_date

В БД хранится дата в виде строки формата DD.MM.YYYY:

 birthday
-----------
26.08.1976
10.08.2015
12.06.2013
23.12.1983

05.02.1988
11.10.1981
2020-10-00
2020-10-01
2020-10-00

Как видно из примера, иногда формат данных отличается от ожидаемого DD.MM.YYYY.

К этим данным делается такой запрос:

(
  case
    when visitor->>'birthday' is not null
      and DATE_PART(
            'year',
            age(now(), to_date(visitor->>'birthday', 'DD.MM.YYYY'))
          ) < 65
    then 1
    else 0
  end
) as is_less_65

Получаю ошибку:

ERROR: date/time field value out of range: "2020-10-00",

Я хотел бы оставить вычисление возраста на стороне sql, но при этом как-то обойти проблему возникающую при парсинге даты. Как мне это сделать?


Ответы (0 шт):