0

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

ご参考までに。この実験には PL/SQL Developer を使用しています。

4

2 に答える 2

2

製品のデフォルトの日付形式は実際にはありません。リファレンス ガイドによると、システム レベルでのデフォルトNLS_DATE_FORMATは に基づいていNLS_TERRITORYます。これは「標準」が「DD- MON -RR」であると言っていますが、少なくとも私が取り組んだプラットフォームでは、データベースレベルで値を指定しない場合に得られるものだと思います.

新しいデータベースを作成するとき、初期化パラメータには特定NLS_DATE_FORMATの を含めることができ、後で変更することもできます。

ただし、システム レベルNLS_DATE_FORMATは、クライアント、セッション、またはTO_CHAR呼び出しでオーバーライドできます。v$nls_parametersシステム値nls_session_parametersを調べて、現在のセッション値を確認できます。必要に応じて変更できalter sessionます。

NLS_DATE_FORMATPL/SQL Developerがセッションを設定のMM/DD/YYYYどこかに設定していることに気付くと思います。

一般に、その値にまったく依存せず、表示には常に明示的な書式マスクを使用することをお勧めしますTO_CHAR(<column>, 'YYYY-MM-DD HH24:MI:SS')

NLS_DATE_FORMATグローバリゼーション ガイドの詳細については、ここここを参照してください。ここで日付表示について少し説明します。日付形式モデル要素の概要はこちら

于 2013-06-26T17:24:21.777 に答える
1

それは依存NSL_DATE_FORMATするNLS_TERRITORY

http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams122.htmをご覧ください。

于 2013-06-26T17:20:57.950 に答える