2014-09-29 2 views
0

, 우리는oracle timestamp를 postgres로 변환하는 방법? 포스트 그레스 타임 스탬프에 오라클 타임 스탬프를 변환하는 방법

15-JUN-2014 01.00.00.0000 PM 

나는 포스트 그레스/그린 플럼 (Greenplum)에서 VARCHAR로 저장 한 다음과 같이 오라클 데이터베이스에 값이 있습니다. 방법은

15-06-2014 13.00.00.0000 

24로 시간 형식, 내가 포스트 그레스에 타임 스탬프를 캐스팅 할 수

출력으로 다음이 필요합니다.

+1

타임 스탬프는 "형식"이없는 찾아주세요 - 오라클이나 포스트 그레스에서 (또는 다른 DBMS에서)도 있습니다. 어떻게 데이터를 전송하고 있습니까? 두 데이터베이스를 어떻게 연결하고 있습니까? –

+0

oracle에서 우리는 CSV 파일을 생성 중이며이 경우 greenplum에로드하면 post/greenplum에서 am/pm을 24 시간 형식으로 변환 할 수 없습니다. –

+0

올바른 타임 스탬프 형식으로 CSV 파일을 바로 생성하지 않는 이유는 무엇입니까? –

답변

3

타임 스탬프는 타임 스탬프입니다. 내부 표현을 사용하여 날짜 (시간 포함)를 나타냅니다. 그러나 다양한 formats을 사용하여 타임 스탬프를 문자열로 변환하거나 문자열로 변환 할 수 있습니다. 예를 들어, 특정 표시를 필요로하는 다른 소프트웨어로 데이터를 내보내거나 표시해야하는 경우.

다음 코드에서는 Oracle에서 첫 번째 예제에 해당하는 형식을 사용하여 문자열을 타임 스탬프 (TO_TIMESTAMP)로 변환합니다.

-- Convert a string to a timestamp 
WITH sample_data AS 
    (SELECT TO_TIMESTAMP('15-JUN-2014 01.00.00.0000 PM', 
         'DD-MON-YYYY HH12.MI.SS.FF4 PM') ts FROM DUAL) 

-- Convert a timestamp to a string using a format corresponding 
-- to "15-06-2014 13.00.00.0000" 
SELECT TO_CHAR(ts, 'DD-MM-YYYY HH24.MI.SS.FF4') as result FROM sample_data; 

생산합니다 (문자열) : 그럼이 두 번째 표현에 대응하는 다른 형식을 사용하여 문자열 (TO_CHAR) 해당 타임 스탬프를 "다시 변환"

result 
15-06-2014 13.00.00.0000 

당신 있다는 점 유의 하시길 바랍니다 PostgreSQL에서도 (거의?) 똑같은 date functions and formats을 사용하여 문자열에서 날짜로 변환 할 수 있습니다.

+0

24 시간 형식으로 변환되지 않았습니다.'select TO_TIMESTAMP (event_timestamp, 'DD-MON- YY HH24.MI.SS.FF4 ') :: jiodba.ext_WFA_ACCOUNTING_MSG에서 TIME ZONE없이 TIMESTAMP 제한 100 - "2014-07-01 12:01:18"' –

0
SELECT To_timestamp(event_timestamp,'DD-MON-YY HH12.MI.SS.SSSS AM.PM')::timestamp without time zone 
FROM jiodba.ext_wfa_accounting_msg limit 1000; 

대답

관련 문제