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 |
ユリウス日 | 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 |
自動認識は epochsecs および epochmillisecs はサポートしていません。
日付またはタイムスタンプの値が自動的に変換されるかどうかをテストするには、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 が使用されます。