DATEFORMAT 및 TIMEFORMAT 옵션의 자동 인식 사용
DATEFORMAT 또는 TIMEFORMAT 파라미터의 인수로 'auto'
를 지정하면 Amazon Redshift가 원본 데이터의 날짜 형식 또는 시간 형식을 자동으로 인식하여 변환합니다. 다음은 그 한 예입니다.
copy favoritemovies from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' dateformat 'auto';
DATEFORMAT 및 TIMEFORMAT 파라미터에서 'auto'
인수를 사용하면 COPY가 DATEFORMAT 및 TIMEFORMAT 문자열 단원의 표에 나열된 날짜 및 시간 형식을 인식하여 변환합니다. 또한 'auto'
인수는 DATEFORMAT 및 TIMEFORMAT 문자열 사용 시 아래와 같이 지원되지 않는 몇 가지 형식을 인식합니다.
형식 | 유효한 입력 문자열의 예 |
---|---|
ISO 8601 | 2019-02-11T05:09:12.195Z |
Julian | J2451187 |
BC | Jan-08-95 BC |
YYYYMMDD HHMISS | 19960108 040809 |
YYMMDD HHMISS | 960108 040809 |
YYYY.DDD | 1996.008 |
YYYY-MM-DD HH:MI:SS.SSS | 1996-01-08 04:05:06.789 |
DD Mon HH:MI:SS YYYY TZ | 17 Dec 07:37:16 1997 PST |
MM/DD/YYYY HH:MI:SS.SS TZ | 12/17/1997 07:37:16.00 PST |
YYYY-MM-DD HH:MI:SS+/-TZ | 1997-12-17 07:37:16-08 |
DD.MM.YYYY HH:MI:SS TZ | 12.17.1997 07:37:16.00 PST |
자동 인식은 epochsec 및 epochmillisec을 지원하지 않습니다.
날짜 또는 타임스탬프 값의 자동 변환 여부를 테스트하려면 CAST 함수를 사용하여 문자열을 날짜 또는 타임스탬프 값으로 변환해볼 수 있습니다. 예를 들어 다음은 타임스탬프 값 'J2345678 04:05:06.789'
를 테스트하는 명령입니다.
create table formattest (test char(21)); insert into formattest values('J2345678 04:05:06.789'); select test, cast(test as timestamp) as timestamp, cast(test as date) as date from formattest; test | timestamp | date ----------------------+---------------------+------------ J2345678 04:05:06.789 1710-02-23 04:05:06 1710-02-23
DATE 열의 원본 데이터에 시간 정보가 포함되면 시간 구성요소는 잘립니다. TIMESTAMP 열의 원본 데이터에서 시간 정보가 빠지면 시간 구성요소로 00:00:00이 사용됩니다.