Даты PostgreSQL относятся к реальным моментам времени на основе григорианского календаря .Вы не можете использовать их для хранения дат из других календарей, таких как 30 февраля.
Один из подходов мог бы заключаться в том, чтобы оставить это поле простым varchar
, возможно, с проверочным ограничением для обеспечения соблюдения формата:
ALTER TABLE mytable ADD CONSTRAINT date_ck CHECK (mydate ~* '^\d\d\d\d-\d\d-\d\d$')