SQL Developer zamanı değil, yalnızca tarihi döndürüyor. Bunu nasıl düzeltirim?


169

SQL Develoepr'in bana hem sonuçlar penceresinde hem de dışa aktardığımda verdiği şey:

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

İşte aynı sorguyu / db'yi çalıştıran başka bir yazılım parçası:

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

SQL Developer'ın da zamanı döndürmesini nasıl sağlayabilirim?

Kısmi cevap:

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

Herhangi biri varsayılanı tam bilgiyi gösterecek şekilde nasıl ayarlayacağını biliyorsa, lütfen aşağıda cevaplayın.

Yanıtlar:


364

Bunu deneyebilir misin?

Araçlar> Tercihler> Veritabanı> NLS'ye gidin ve Tarih Biçimini AA / GG / YYYY HH24: MI: SS olarak ayarlayın


8
Almanca versiyon: Ekstra> Voreinstellungen> Datenbank> NLS
Olivier Faucheux

9
WOW ... bu çok güzeldi. İfadede dönüşüm yaptığımı selectdüşünemiyorum.
Leniel Maccaferri

15
'Mantıksal Değil' :-)
dünya

3
Hayır! Ulusal Dil Desteği anlamına gelir. Ulusal tarih, sayı, para birimi ve dil ayarlarını tanımlamak için kullanılır.
user2441441

2
Not: Bu ayar etkili olması için ben veritabanına tekrar bağlanma için gerekli
spume

35

Tarih biçimi aşağıdaki sorgu kullanılarak da ayarlanabilir: -

SESSION kümesini değiştir NLS_DATE_FORMAT = 'date_format'

örneğin: SESSION kümesini değiştir NLS_DATE_FORMAT = 'DD-AA-YYYY HH24: MI: SS'


21

Önceki yanıtlardan bazılarını genişletmek için, Oracle DATE nesnelerinin Oracle TIMESTAMP nesnelerinden farklı davrandığını gördüm. Özellikle, NLS_DATE_FORMAT öğenizi kesirli saniyeleri içerecek şekilde ayarlarsanız, tüm zaman bölümü atlanır.

  • Biçim "YYYY-AA-GG HH24: MI: SS" DATE ve TIMESTAMP için beklendiği gibi çalışıyor
  • "YYYY-AA-GG HH24: MI: SSXFF" biçimi yalnızca DATE için tarih bölümünü görüntüler, TIMESTAMP için beklendiği gibi çalışır

Kişisel tercihim DATE değerini "YYYY-AA-GG HH24: MI: SS" olarak ve TIMESTAMP'i "YYYY-AA-GG HH24: MI: SSXFF" olarak ayarlamaktır.


Teşekkürler, bu gerçekten bana yardımcı oldu - formatı zaman damgasından kopyaladım ve neden çalışmadığını anlayamadım.
fleeblewidget

YYYY-MM-DD HH24:MI:SSKarşı kullanmak için bir neden var mı (standartlar dışında) DD-MM-YYYY HH24:MI:SS?
Nathan Goings

Karışıklığı önlemek için yılı her zaman birinci sıraya koydum. ABD'de tipik sekans AA-GG-YYYY'dir. Başka yerlerde DD-AA-YYYY. Sorun şu ki, onları 1 ile 12 gün arasında ayıramazsın. Bu yüzden her zaman yılı ilk sıraya koydum. Ve ben hiç yıl önce koyan hiçbir şey ile karşılaşmadım, sonra ay sonra gün. Ayrıca, kullanışlı bir yan etki olan temiz bir dize olarak sıralar.
trevorsky

16

Araçlar> Tercihler> Veritabanı> NLS Parametresi'nden ve Tarih Biçimi'ni

GG-MON-RR SS: MI: SS


4

Bu size saatler, dakikalar ve saniye verir. Hey! Çabuk.

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

Bu yanıtların hiçbiri benim için işe yaramaz, Tercihler NLS yapılandırma seçeneği veya ALTER deyimi için geçerli değildir. Benim durumumda işe yarayan tek yaklaşım buydu:

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

* BEGIN ifadesinden sonra eklendi

PL / SQL Developer v9.03.1641 kullanıyorum

Umarım bu birisine yardım eder!


-1

Bu şekilde buldum:

Oracle SQL Developer (Sol üst simge)> Tercihler> Veritabanı> NLS'yi seçin ve Tarih Biçimini AA / GG / YYYY HH24: MI: SS olarak ayarlayın

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.