Так что я храню день рождения и месяц пользователя. Я отправляю им предложения на день рождения, и эти сделки истекают каждый раз в другом интервале, то есть «количество дней после их рождения».Postgres make_date handle exception
Я построил формулу успешно (ниже кусок от него), но я ушел с этой проблемой:
('2015-10-10'::date >= make_date(2015, users.birth_month, users.birth_day)
...
Если пользователь родился 29 февраля, make_date
бы поднять исключение за недействительные годы (ERROR: date field value out of range: 2015-02-29
)
Как я могу изящно справиться с этим? (У меня есть другие способы справиться с этим, но они требуют от меня специального лечения для високосных лет)
Вы можете создать функцию, которая вызывает 'make_date() 'ловит любое исключение и затем возвращает' null' в этом случае –
Как вы думаете, это повлияло бы на эффективность вообще? (по сравнению с моим решением ниже) – Abdo