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

问题描述 投票:0回答:1

我们是否可以像在mysql中那样在oracle中分配默认值'0000-00-00 00:00:00',如下所示?

在mysql中进行示例查询:

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

oracle timestamp default alter-table
1个回答
1
投票

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

dbfiddle here

编辑

当然,现在回到one of my old questions并爬了一个或两个虫洞,我看到您can可以接受零年的年份-但是看来月份和日期都不能为零。要获得零年,您必须使用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错误。

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

© www.soinside.com 2019 - 2024. All rights reserved.