Нет - в Oracle ни год, ни месяц, ни день не могут быть установлены на ноль. Вместо этого я предлагаю использовать NULL.
dbfiddle здесь
EDIT
Конечно, теперь вернемся к одному из моих старых вопросов и пополз по червоточине или две, я вижу, что вы можете получить год нуля, который будет принят - но все равно кажется, что месяц и день не могут быть равны нулю. Чтобы получить нулевой год, вы должны использовать ANSI-литерал даты - например, DATE '0000-01-01'
считается приемлемым. Я не знаю, понравится ли это различным подпрограммам даты и вычислениям дат - например, TO_CHAR(DATE '0000-01-01', 'DD-MON-YYYY')
дает результат '00 -000-0000 ', что, конечно, не то, что я ожидал, но, возможно, это достаточно хорошодля ваших целей. Обратите внимание, что вы не можете пойти другим путем с этим - TO_DATE('00-000-0000', 'DD-MON-YYYY')
выдает ожидаемую ORA-01847 - day of month must be between 1 and last day of month
ошибку.
Кто-нибудь действительно знает, который час ..? : -)