Utilización del reconocimiento automático con DATEFORMAT y TIMEFORMAT - Amazon Redshift

Utilización del reconocimiento automático con DATEFORMAT y TIMEFORMAT

Si especifica 'auto' como argumento del parámetro DATEFORMAT o TIMEFORMAT, Amazon Redshift reconocerá y convertirá de forma automática el formato de fecha o de hora en los datos de origen. A continuación se muestra un ejemplo.

copy favoritemovies from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' dateformat 'auto';

Cuando se utiliza con el argumento 'auto' para DATEFORMAT y TIMEFORMAT, COPY reconoce y convierte los formatos de fecha y hora enumerados en la tabla en Cadenas TIMEFORMAT y DATEFORMAT. Además, el argumento 'auto' reconoce los siguientes formatos, que no se admiten cuando se utiliza una cadena DATEFORMAT y TIMEFORMAT.

Formato Ejemplo de cadena de entrada válida
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 dic 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

El reconocimiento automático no admite epochsecs ni epochmillisecs.

Para probar si un valor de marca temporal o fecha se convertirá automáticamente, utilice una función CAST para intentar convertir la cadena en un valor de marca temporal o fecha. Por ejemplo, los siguientes comandos prueban el valor de marca temporal '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

Si los datos de origen para una columna DATE incluyen información de la hora, se trunca el componente de tiempo. Si los datos de origen para una columna TIMESTAMP omiten la información de la hora, se usa 00:00:00 para el componente de tiempo.