SQL Developer zwraca tylko datę, a nie godzinę. Jak to naprawić?


167

Oto, co daje mi SQL Develoepr, zarówno w oknie wyników, jak i podczas eksportu:

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

Oto, co daje inny program uruchamiający to samo zapytanie / db:

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

Jak sprawić, by SQL Developer również zwrócił czas?

Częściowa odpowiedź:

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

Jeśli ktoś wie, jak ustawić domyślne wyświetlanie pełnych informacji, odpowiedz poniżej.

Odpowiedzi:


363

Możesz tego spróbować?

Idź do Narzędzia> Preferencje> Baza danych> NLS i ustaw Format daty jako MM / DD / RRRR GG24: MI: SS


8
W wersji niemieckiej: Extra> Voreinstellungen> Datenbank> NLS
Olivier Faucheux

9
WOW ... to było piękne. Nie mogę uwierzyć, że dokonałem konwersji w selectoświadczeniu.
Leniel Maccaferri

15
„Nie logiczne ustawienie” :-)
worldwidejimbo

3
Nie! To oznacza National Language Support. Służy do określenia narodowych ustawień daty, numeru, waluty i języka.
user2441441

2
Uwaga: musiałem ponownie połączyć się z bazą danych, aby to ustawienie
zaczęło

35

Format daty można również ustawić za pomocą poniższego zapytania: -

zmiana SESSION set NLS_DATE_FORMAT = 'date_format'

np .: alter SESSION set NLS_DATE_FORMAT = 'DD-MM-RRRR GG24: MI: SS'


21

Aby rozwinąć niektóre z poprzednich odpowiedzi, stwierdziłem, że obiekty Oracle DATE zachowują się inaczej niż obiekty Oracle TIMESTAMP. W szczególności, jeśli ustawisz NLS_DATE_FORMAT tak, aby obejmował ułamki sekund, cały czas zostanie pominięty.

  • Format „RRRR-MM-DD GG24: MI: SS” działa zgodnie z oczekiwaniami, dla DATE i TIMESTAMP
  • Format „RRRR-MM-DD HH24: MI: SSXFF” wyświetla tylko część daty dla DATE, działa zgodnie z oczekiwaniami w przypadku TIMESTAMP

Osobiście preferuję ustawienie DATA na „RRRR-MM-DD GG24: MI: SS”, a TIMESTAMP na „RRRR-MM-DD GG24: MI: SSXFF”.


Dzięki, to mi naprawdę pomogło - właśnie skopiowałem format z sygnatury czasowej i nie mogłem zrozumieć, dlaczego to nie działa.
fleeblewidget

Czy istnieje powód (inny niż standardy), aby użyć w YYYY-MM-DD HH24:MI:SSporównaniu DD-MM-YYYY HH24:MI:SS?
Nathan Goings

Aby uniknąć nieporozumień, zawsze stawiam rok na pierwszym miejscu. W Stanach Zjednoczonych typowa sekwencja to MM-DD-RRRR. Gdzie indziej jest to DD-MM-RRRR. Kłopot w tym, że nie można ich rozróżnić przez dni od 1 do 12 lat. Dlatego zawsze stawiam rok na pierwszym miejscu. I nigdy nie natknąłem się na coś, co stawia rok na pierwszym miejscu, bez podążania za miesiącem po dniu. Sortuje również czysto jako sznurek, co jest przydatnym efektem ubocznym.
trevorsky

16

W menu Narzędzia> Preferencje> Baza danych> Parametr NLS i ustaw Format daty jako

DD-MON-RR HH: MI: SS


4

To da ci godziny, minuty i sekundy. Cześć Presto.

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

Żadna z tych odpowiedzi nie zadziała dla mnie, ani opcja konfiguracji NLS Preferencji ani instrukcja ALTER. To było jedyne podejście, które zadziałało w moim przypadku:

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

* dodane po wyrażeniu BEGIN

Używam PL / SQL Developer v9.03.1641

Miejmy nadzieję, że to komuś pomoże!


-1

Cóż, znalazłem w ten sposób:

Oracle SQL Developer (Lewa górna ikona)> Preferencje> Baza danych> NLS i ustaw Format daty na MM / DD / RRRR HH24: MI: SS

wprowadź opis obrazu tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.