es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Partición de fechas Athena sin bits adicionales

Tengo una tabla con una partición de fecha proyectada (p_date) en la que estoy intentando insertar valores. Cuando inserto valores en esta tabla y especifico un valor de cadena para p_date, se queja de que estoy intentando insertar un varchar en una columna de tipo timestamp (entendible). Pero cuando convierto el valor a un timestamp y hago la misma inserción, agrega un valor de milisegundos no deseado al final del timestamp.

-- ERROR no se puede insertar varchar en timestamp
INSERT INTO blah 
(p_date)
VALUES
('2021-01-01 00:00:00');

-- Sin error. Pero agrega un <code>.0</code> no deseado en la clave s3
INSERT INTO blah 
(p_date)
VALUES
(timestamp '2021-01-01 00:00:00');

Esto es cómo se ve en S3:

boo

¿Cómo puedo insertar filas en esta tabla en la partición correcta p_date sin cambiar ese campo a una cadena o obtener bits adicionales al final?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para insertar filas en la tabla en la partición p_date correcta sin cambiar el campo a una cadena de texto o sin agregar bits adicionales al final, puedes utilizar la función CAST() para convertir el valor de cadena en un timestamp sin milisegundos antes de insertarlo en la tabla. Aquí tienes un ejemplo:

    INSERT INTO blah (p_date)
    VALUES (CAST('2021-01-01 00:00:00' AS TIMESTAMP));
    

    Esto insertará el valor de fecha y hora sin milisegundos en la columna de partición p_date de la tabla, sin generar un error ni añadir bits no deseados al final. Puedes utilizar este método para cualquier valor de cadena de fecha y hora que necesites insertar en una columna de partición de tipo timestamp.

Comments are closed.