第一次使用 Oracle SQL(我习惯了 MySQL)。我发现有关默认日期格式的信息相互矛盾。在多次尝试使用 TO_DATE 和我的 INSERT INTO my_table 语句后,我终于发现我正在使用的数据库需要 DD-MON-YY(即 25-JAN-18)。然而,在 stackoverflow 和其他地方的各个页面上,我看到一些说默认是 YYYYMMDD 或 DD/MM/YYYY 或 YYYY-MM-DD。为什么会有这么多相互矛盾的信息?
原文由 BigRedEO 发布,翻译遵循 CC BY-SA 4.0 许可协议
Oracle 以及其他数据库允许您设置默认格式。开箱即用的格式(通常)是 DD-MON-RR,其中“RR”指的是两位数的年份。这是一种非常糟糕的格式,从模糊性(两位数的年份?)和国际化的角度来看(对于哪些国家来说,这实际上是默认的?)。但是甲骨文已经存在了很长时间。
标准格式也由国际标准化组织 ISO 定义。他们选择了更像 YYYY-MM-DD 的东西。实际上,连字符是可选的,但我认为它们使日期更具可读性。
如果您使用
DATE
,Oracle 接受这种格式的常量:这非常方便。首先,支持合理的标准很好。其次,无论国际化设置如何,代码都是安全的。 Oracle 文档当然详细介绍了这一点; 这 是一个开始的地方。