SQL Developer는 시간이 아닌 날짜 만 반환합니다. 이 문제를 어떻게 해결합니까?


167

결과 창과 내보낼 때 SQL Develoepr이 제공하는 내용은 다음과 같습니다.

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

동일한 query / db를 실행하는 다른 소프트웨어가 제공하는 내용은 다음과 같습니다.

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

9
와우 .. 이거 아름다워 select성명서 에서 내가 회심을하고 있다고 믿을 수 없습니다 .
Leniel Maccaferri

15
'논리 설정 아님':-)
worldwidejimbo

3
아니! 자국어 지원을 나타냅니다. 국가 날짜, 숫자, 통화 및 언어 설정을 정의하는 데 사용됩니다.
user2441441

2
참고 :이 설정이 적용 적용하기 위해 나는 데이터베이스에 다시 연결하는 데 필요한
거품

35

아래 쿼리를 사용하여 날짜 형식을 설정할 수도 있습니다.

세션 설정 변경 NLS_DATE_FORMAT = 'date_format'

예 : alter SESSION set NLS_DATE_FORMAT = 'DD-MM-YYYY HH24 : MI : SS'


21

이전 답변 중 일부를 확장하기 위해 Oracle DATE 객체가 Oracle TIMESTAMP 객체와 다르게 작동한다는 것을 알았습니다. 특히 NLS_DATE_FORMAT에 소수 초를 포함하도록 설정하면 전체 시간 부분이 생략됩니다.

  • DATE 및 TIMESTAMP에 대해 "YYYY-MM-DD HH24 : MI : SS"형식이 예상대로 작동합니다.
  • "YYYY-MM-DD HH24 : MI : SSXFF"형식은 DATE의 날짜 부분 만 표시하며 TIMESTAMP의 예상대로 작동합니다.

개인적으로 선호하는 것은 DATE를 "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

나는 혼란을 피하기 위해 항상 1 년을 첫 번째로 두었습니다. 미국에서 일반적인 순서는 MM-DD-YYYY입니다. 다른 곳에서는 DD-MM-YYYY입니다. 문제는 1 ~ 12 일 사이에 구분할 수 없다는 것입니다. 그래서 저는 항상 1 년을 먼저 생각합니다. 그리고 나는 그 다음 해가 아닌 다음 해에 첫 번째로 오는 것을 본 적이 없습니다. 또한 문자열로 깔끔하게 분류되어 편리한 부작용입니다.
trevorsky

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.