2013-05-14 3 views
0

다음 날짜를이 형식 (DD-MON-YYYY)으로 변환하고 싶습니다.to_char 함수를 사용하여 SQL에서 날짜를 변환하십시오.

아래 쿼리를 실행했지만 "날짜 형식이 인식되지 않았습니다"라는 오류가 발생했습니다. 시간대를 제외한 모든 들어

select to_char(to_date('Sat Dec 01 00:00:00 IST 2012','EEE Mon dd HH:mm:ss z yyyy'),'DD-MON-YYYY') from dual; 
+0

어떤 날짜? 너는 뭔가 정보가 빠져있는 것처럼 보인다. 또한 어떤 데이터베이스 – Woot4Moo

+1

'dual'에서 나에게 선택하면 오라클을 나타냅니다 – Lock

+0

Oracle10g를 사용하고 있습니다. 날짜는 토요일 12 월 1 일 00:00:00 IST 2012입니다. – Ryan

답변

1

:

당신이 TO_TIMESTAMP_TZ (같은 시간대를 지원하는 변환 기능을 사용) 한 오라클의 인식으로 시간대 이름을 가질 필요가 시간대 지원을
'DY MON DD HH24:MI:SS YYYY' 

그것이 인식하는 형태.

select to_char(TO_TIMESTAMP_TZ( 
     REPLACE('Sat Dec 01 21:00:00 IST 2012','IST','Asia/Calcutta'), 
     'DY MON DD HH24:MI:SS TZR YYYY'),'DD-MON-YYYY') from dual; 

표준 시간대 이름과 약어 간의 관계는 대부분 1 : 다수입니다.

SELECT tzname, tzabbrev FROM v$timezone_names where TZABBREV = 'IST' 

귀하의 예를 들어 아마 당신이 변환하기 전에 출력에 필요하지 않은 날짜 부분의 일부 또는 전부를 제거하는 것이 더 쉽습니다.

select to_char(to_date(replace('Sat Dec 01 21:00:00 IST 2012','IST',''), 
     'DY MON DD HH24:MI:SS YYYY'),'DD-MON-YYYY') from dual; 
관련 문제