SQL Developer возвращает только дату, а не время. Как это исправить?


168

Вот что дает мне SQL Develoepr как в окне результатов, так и при экспорте:

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

Вот что дает другая часть программного обеспечения, выполняющая тот же запрос / DB:

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

Как заставить разработчика SQL вернуть время тоже?

Частичный ответ:

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
Оливье Фошо

9
ВАУ ... это было прекрасно. Не могу поверить, что я делал преобразование в selectзаявлении.
Лениэль Маккаферри

15
«Не логическая настройка» :-)
worldwidejimbo

3
Нет! Это означает поддержку национального языка. Он используется для определения национальной даты, числа, валюты и языковых настроек.
user2441441

2
Примечание: мне нужно было повторно подключиться к базе данных, чтобы этот параметр вступил в силу
спам

35

Формат даты также может быть установлен с помощью запроса ниже: -

изменить SESSION установить NLS_DATE_FORMAT = 'date_format'

Например: изменить SESSION set NLS_DATE_FORMAT = 'ДД-ММ-ГГГГ ЧЧ24: MI: SS'


21

Чтобы расширить некоторые из предыдущих ответов, я обнаружил, что объекты Oracle DATE ведут себя не так, как объекты Oracle TIMESTAMP. В частности, если вы установите NLS_DATE_FORMAT, чтобы включить доли секунды, вся часть времени будет опущена.

  • Формат «ГГГГ-ММ-ДД ЧЧ24: MI: SS» работает должным образом, для DATE и TIMESTAMP
  • Формат «ГГГГ-ММ-ДД ЧЧ24: MI: SSXFF» отображает только часть даты для ДАТЫ, работает как ожидалось для TIMESTAMP

Мое личное предпочтение - установить для ДАТЫ значение «ГГГГ-ММ-ДД ЧЧ24: MI: SS» и установить для параметра TIMESTAMP значение «ГГГГ-ММ-ДД ЧЧ24: MI: SSXFF».


Спасибо, это действительно помогло мне - я просто скопировал формат из отметки времени и не мог понять, почему он не работает.
fleeblewidget

Есть ли причина (кроме стандартов) использовать YYYY-MM-DD HH24:MI:SSпротив DD-MM-YYYY HH24:MI:SS?
Натан Гоингс

Я всегда ставлю год на первое место, чтобы избежать путаницы. В США типичной последовательностью является MM-DD-YYYY. В другом месте это ДД-ММ-ГГГГ. Проблема в том, что вы не можете отличить их от 1 до 12 дней. Поэтому я всегда ставлю год на первое место. И я никогда не сталкивался с чем-то, что ставит год первым, а потом - месяц, а потом день. Он также сортируется как строка, что является удобным побочным эффектом.
Треворский

16

В меню «Инструменты»> «Установки»> «База данных»> «Параметр NLS» выберите «Формат даты»

ДД-МОН-РР ЧЧ: МИ: СС


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».

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.