"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, но при этом как-то обойти проблему возникающую при парсинге даты. Как мне это сделать?