SQL Developerは、時刻ではなく日付のみを返します。どうすれば修正できますか?


167

結果ウィンドウとエクスポート時の両方で、SQL Develoeprが提供するものは次のとおりです。

CREATION_TIME       
------------------- 
27-SEP-12
27-SEP-12
27-SEP-12

同じクエリ/データベースを実行する別のソフトウェアが提供するものは次のとおりです。

CREATION_TIME       
------------------- 
2012-09-27 14:44:46 
2012-09-27 14:44:27 
2012-09-27 14:43:53 

SQL Developerに時間を返させるにはどうすればよいですか?

部分的な答え:

select TO_CHAR(creation_time,'DD-Mon-YYYY HH24:MI:SS') from 

完全な情報を表示するようにデフォルトを設定する方法を知っている人がいる場合は、以下に回答してください。

回答:


363

試して頂けますか?

[ツール]> [設定]> [データベース]> [NLS]に移動し、日付形式をMM / DD / YYYY HH24:MI:SSに設定します


8
ドイツ語版:Extra> Voreinstellungen> Datenbank> NLS
Olivier Faucheux 2013

9
うわー...これは美しかった。私がselect声明の中で変換を行っていたとは信じられません。
Leniel Maccaferri 2013

15
「ない論理設定」:-)
worldwidejimbo

3
番号!それは各国語サポートの略です。国の日付、数値、通貨、言語設定を定義するために使用されます。
user2441441 2015年

2
注:この設定を有効にするには、データベースに再接続する必要がありました。
1

35

日付形式は、以下のクエリを使用して設定することもできます:-

SESSIONセットの変更NLS_DATE_FORMAT = 'date_format'

例:SESSIONセットの変更NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI:SS'


21

以前の回答のいくつかを拡張すると、Oracle DATEオブジェクトはOracle TIMESTAMPオブジェクトとは異なる動作をすることがわかりました。特に、NLS_DATE_FORMATに小数秒を含めるように設定した場合、時間部分全体が省略されます。

  • 形式 "YYYY-MM-DD HH24:MI:SS"は、DATEおよびTIMESTAMPの場合、期待どおりに機能します
  • フォーマット "YYYY-MM-DD HH24:MI:SSXFF"は、DATEの日付部分のみを表示し、TIMESTAMPで期待どおりに機能します

私の個人的な好みは、日付を「YYYY-MM-DD HH24:MI:SS」に設定し、TIMESTAMPを「YYYY-MM-DD HH24:MI:SSXFF」に設定することです。


ありがとう、これは本当に役に立ちました。タイムスタンプからフォーマットをコピーしただけで、なぜ機能しないのか理解できませんでした。
fleeblewidget

YYYY-MM-DD HH24:MI:SS対して使用する理由(標準以外)はありますDD-MM-YYYY HH24:MI:SSか?
Nathan Goings

私は常に混乱を避けるために年を最初に置いています。米国では、一般的なシーケンスはMM-DD-YYYYです。それ以外の場合はDD-MM-YYYYです。問題は、1から12までの日数を区別することができないため、常に1年を最初に置くことです。そして、私は年を最初にして、月も日も続くことは決してありません。また、文字列としてきれいにソートされます。これは便利な副作用です。
トレヴォルスキー

16

[ツール]> [設定]> [データベース]> [NLSパラメータ]から、日付形式を次のように設定します

DD-MON-RR HH:MI:SS


4

これにより、時間、分、秒が表示されます。ちょっとプレスト。

select
  to_char(CREATION_TIME,'RRRR') year, 
  to_char(CREATION_TIME,'MM') MONTH, 
  to_char(CREATION_TIME,'DD') DAY, 
  to_char(CREATION_TIME,'HH:MM:SS') TIME,
  sum(bytes) Bytes 
from 
  v$datafile 
group by 
  to_char(CREATION_TIME,'RRRR'), 
  to_char(CREATION_TIME,'MM'), 
  to_char(CREATION_TIME,'DD'), 
  to_char(CREATION_TIME,'HH:MM:SS') 
 ORDER BY 1, 2; 

3

これらの回答はどちらも私にとっては機能せず、Preferences NLS構成オプションまたはALTERステートメントでは機能しません。これが私の場合に機能した唯一のアプローチでした:

dbms_session.set_nls('nls_date_format','''DD-MM-YYYY HH24:MI:SS''');

* BEGINステートメントの後に追加

PL / SQL Developer v9.03.1641を使用しています

うまくいけば、これは誰かの助けになります!


-1

よく私はこの方法を見つけました:

Oracle SQL Developer(左上のアイコン)> [設定]> [データベース]> [NLS]を選択し、日付形式をMM / DD / YYYY HH24:MI:SSに設定します。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.