在Oracle SQL中,我读到默认日期格式为'YYYY-MON-DD'
但是,当我运行此查询时:
SELECT TO_CHAR
(SYSDATE) "NOW"
FROM DUAL;
它返回:
23-APR-15
虽然我期待像'2015-APR-23'这样的东西。
为什么?感谢
答案 0 :(得分:5)
默认日期格式是您的会话nls_date_format
指定的任何内容。您永远不应该编写依赖于会话nls_date_format
的代码,因为这取决于用户的偏好,他们的国家和地区等等。您应该使用显式转换和/或日期文字(日期' yyyy-mm-dd')在您的代码中,而不是依赖于隐式转换。如果您关心返回的字符串的格式,则需要在to_char
调用中提供显式格式掩码。
您的会话nls_date_format
似乎是DD-MON-RR
,这是英语语言安装的常见默认设置。其他人的默认值可能是YYYY-MON-DD
。其他人可能还有另一个默认值。