Измените столбец отметки времени в таблице оракулов со значением по умолчанию «0000-00-00 00:00:00». - PullRequest
0 голосов
/ 07 ноября 2019

Можем ли мы присвоить значение по умолчанию «0000-00-00 00:00:00» в Oracle, как мы делаем в MySQL, как показано ниже?

Пример запроса в MySQL:

ALTERТАБЛИЦА . MODIFY COLUMN TIMESTAMP DEFAULT '0000-00-00 00:00:00';

1 Ответ

1 голос
/ 07 ноября 2019

Нет - в 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 ошибку.

Кто-нибудь действительно знает, который час ..? : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...