2017-12-25 17 views
0

테이블을 만들 때 다음 구문을 사용하는 csv 파일에서 타임 스탬프를 처리하는 방법 - MM/DD/YY HH : MI?PostgreSQL에서 타임 스탬프 값을 처리 할 때 테이블 만들기 호출에 전달하는 데이터 유형은 무엇입니까?

ERROR: ERROR: invalid input syntax for type timestamp: "visit_datetime" Where: COPY air_reserve, line 16, column visit_datetime: "visit_datetime"

하나의 솔루션을 : 내가 말하는 오류 메시지가 나타납니다,

create table timetable (
    time timestamp 
); 

copy table from '<path>' delimiter ',' CSV; 

그러나 : 나는 PostgreSQL을에 다음 스크립트를 시도 1/1/16 19시

: 다음은 그 예이다 먼저 char에 timestamp 열을 작성한 다음 'to_char (time, MM/DD/YY HH : MI)'함수를 사용하여 해당 timestamp 데이터 유형으로 변환하는 별도의 쿼리를 실행합니다. 그러나 단일 쿼리에서 올바른 데이터 형식으로 데이터를로드 할 수있는 솔루션을 찾고 있습니다.

+1

[psql \ copy] (https://stackoverflow.com/questions/14042452/importing-csv-with-timestamp)를 사용하여 [타임 스탬프 열 (dd.mm.yyyy hh.mm.ss)로 .csv 가져 오기]의 가능한 복제본 -column-dd-mm-yyyy-hh-mm-ss-using-psql-copy) – Dmitry

답변

0

데이터를로드 할 수있는 datestyle을 찾을 수 있지만 조만간 누군가가 적합하지 않은 것을 제공 할 것입니다.

귀하가 고려한 해결책이 가장 좋습니다.

우리는 이것을 데이터웨어 하우스를로드하기위한 표준 패턴으로 사용합니다. 현재 데이터를 가져 와서 대상 데이터 유형으로 직접로드하지 않을 데이터에 대해 varchar 열을 사용하여 스테이징 테이블로로드합니다. 그런 다음 데이터를 양호한 상태로 만들기 위해 필요한 스크립트를 실행하여 이전에 보지 못한 방식으로 손상된 것에 대한 경고를 제기합니다. 그런 다음 이전 날짜에 대해 정리 된 데이터가 포함 된 테이블에 오늘 데이터의 정리 된 버전을 추가합니다.

몇 가지 단계가 필요한 경우 신경 쓸 필요가 없습니다. 우리는 그것들을 모두 스크립트에 넣고 자동화 된 작업으로 실행합니다.

저는 사용하는 기술을 문서화하고 있습니다. 이것의 시작을 http://www.thedatastudio.net에서 볼 수 있습니다.

+0

매우 포괄적이고 사려 깊은 답변을 해주셔서 감사합니다! –