2014-12-11 3 views
0

타임 스탬프 값을 2005-01-31T00:00:00.000-05:00으로했습니다. 숫자 형식이 20050131 인 비밀 번호로 변환하여 숫자의 데이터 유형이있는 열과 동일하게 만듭니다.타임 스탬프 값을 숫자로 변환

to_number(to_date(timestamp, 'yyyymmdd'))으로 시도했습니다. 그러나 오류 not a valid month이 발생합니다.

해결에 도와 주 시겠어요? 먼저이

to_number(to_char(timestamp, 'yyyymmdd')) 

아래처럼 사용

+0

먼저 AllanS.Hansen @ 문자열 –

+0

로 변환 '을 선택 TO_NUMBER (TO_DATE (캐스트 ('2005-01-31T00을 00:00 - 05 : 00 'VARCHAR2 (30))', 'yyyymmdd')) 에서 언급 한대로했으나 여전히 유효하지 않은 달인 – ethan

+0

무엇이 있는지 알려줄 수 있습니까? 이 날짜 시간 2005-01-31T00 : 00 : 00.000-05 : 00 형식? 전의. 2005-01-31 YYYY-MM-DD – Saravanan

답변

0

시도는 수에 다음 숯불로 변환하고 있습니다. 당신의 타임 스탬프 값이 VARCHAR2 값을 경우

+0

내가 언급 한대로 오류가 발생했습니다. 유효한 번호 ' @Exhausted – ethan

+0

to_char가 값을 제공합니다. – Exhausted

+0

아니요, '유효하지 않은 번호'라고 말합니다 – ethan

0

은, 어쩌면이 도움이 될 것입니다

WITH tstmp AS (
    SELECT '2005-01-31T00:00:00.000-05:00' AS val FROM dual 
) 
SELECT TO_NUMBER(TO_CHAR(FROM_TZ(TO_TIMESTAMP(SUBSTR(val, 1, 23), 'YYYY-MM-DD"T"HH24:MI:SS.FF3'), SUBSTR(val, 24)) , 'YYYYMMDD')) AS newval 
    FROM tstmp; 
+0

이 아닌지를 알려줍니다. 이는 VARCHAR2가 아닙니다. 그것의'timestamp' – ethan