Usar o reconhecimento automático com DATEFORMAT e TIMEFORMAT
Se você especificar 'auto'
como o argumento para o parâmetro DATEFORMAT ou TIMEFORMAT, o Amazon Redshift reconhecerá automaticamente e converterá o formato de data ou o formato de hora nos dados de origem. Por exemplo:
copy favoritemovies from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' dateformat 'auto';
Quando usado com o argumento 'auto'
para DATEFORMAT e TIMEFORMAT, COPY reconhece e converte os formatos de data e hora listados na tabela em Strings DATEFORMAT e TIMEFORMAT. Além disso, o argumento 'auto'
reconhece os seguintes formatos não compatíveis ao usar uma string DATEFORMAT e TIMEFORMAT.
Formato | Exemplo de string de entrada válida |
---|---|
ISO 8601 | 2019-02-11T05:09:12.195Z |
Juliano | 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 Dez 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 |
O reconhecimento automático não dá suporte a epochsecs e epochmillisecs.
Para testar se um valor de data ou de data e hora será convertido automaticamente, use uma função CAST para tentar converter a string em um valor de data ou de data e hora. Por exemplo, os comandos a seguir testam o valor de data e hora '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
Se os dados de origem de uma coluna DATA incluírem informações de hora, o componente de hora será truncado. Se os dados de origem de uma coluna TIMESTAMP omitirem informações de hora, 00:00:00 será usado para o componente de hora.