Oracle日期格式

时间:2013-06-26 17:15:40

标签: oracle date

Oracle 11g文档说默认日期格式是DD-MON-YYYY,这意味着如果我使用以下日期将日期插入日期列:

insert into table t values(1, '02-JAN-2013')

然后选择它

select * from t

它应显示为02-JAN-2013,而实际上它显示日期为01/02/2013。

为什么他的差异或我错过了什么。

参考。 http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html

FYI。我正在使用PL / SQL Developer进行此实验。

2 个答案:

答案 0 :(得分:2)

产品实际上没有默认日期格式,reference guide表示系统级NLS_DATE_FORMAT的默认值基于NLS_TERRITORY。虽然this说“标准”是“DD-MON-RR”,但我认为如果你没有在数据库级别指定一个值,那就是你得到的,至少在我曾经使用的平台上。

创建新数据库时,初始化参数可以包含特定的NLS_DATE_FORMAT,也可以在以后更改。

但是系统级NLS_DATE_FORMAT可以被客户端,会话或TO_CHAR调用覆盖。您可以查看v$nls_parameters以查看系统值,并nls_session_parameters查看当前会话值。如果您愿意,可以使用alter session进行更改。

我很确定你会发现PL / SQL Developer会在其偏好的某个地方将会话NLS_DATE_FORMAT设置为MM/DD/YYYY

通常最好不要依赖该值,并且总是使用显式格式掩码进行显示,例如TO_CHAR(<column>, 'YYYY-MM-DD HH24:MI:SS')

全球化指南herehereNLS_DATE_FORMAT还有更多内容;还有一点关于日期显示here;以及日期格式模型元素here

的概述

答案 1 :(得分:1)

取决于NSL_DATE_FORMAT取决于NLS_TERRITORY

看看:http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams122.htm