更改Oracle表中的时间戳列,其默认值为'0000-00-00 00:00:00'

时间:2019-11-06 22:57:16

标签: oracle timestamp default alter-table

是否可以像在mysql中那样在oracle中分配默认值'0000-00-00 00:00:00'?

在mysql中进行示例查询:

ALTER TABLE。修改列时间戳默认为'0000-00-00 00:00:00';

1 个答案:

答案 0 :(得分:1)

否-在Oracle中,不能将年,月或日设置为零。我建议改用NULL。

dbfiddle here

编辑

当然,现在回过one of my old questions并爬了一个或两个虫洞,我发现您可以接受为零的一年-但该月份仍然出现并且day不能为零。要获得零年,您必须使用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错误。

有人真的知道现在几点吗? :-)