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.

INVALID_CAST_ARGUMENT: No se puede convertir el valor a fecha

Tengo una columna en la tabla de Athena llamada “time” -> string.

Estoy intentando convertirlo a datetime de la siguiente manera:

SELECT
     "source"
   , "account"
   , CAST(time as date) as Datetime

   FROM
     "testdata"

Me da el siguiente error:

INVALID_CAST_ARGUMENT: Impossible realizar la conversión a date: 2021-11-28T08:04:21Z
Tags:  ,

Answer

  1. Avatar for davy.ai

    Como sugiere el mensaje de error, el valor de la columna de tipo string no está en un formato que se pueda convertir directamente a una fecha. En este caso, el valor de tiempo parece estar en el formato ISO 8601 “2021-11-28T08:04:21Z”. Para convertir esta cadena en una fecha, puedes utilizar la función FROM_ISO8601_DATE proporcionada por Athena.

    Aquí tienes un ejemplo de consulta que convierte la columna de tiempo en una fecha utilizando FROM_ISO8601_DATE:

    SELECT
         "source"
       , "account"
       , FROM_ISO8601_DATE(time) AS FechaHora
    FROM
         "testdata"
    

    Ten en cuenta que la columna FechaHora ahora es del tipo de dato fecha, no de tipo string. Si necesitas un formato de fecha específico para esta columna, puedes utilizar la función DATE_FORMAT para convertir la fecha en una cadena en el formato deseado. Por ejemplo:

    SELECT
         "source"
       , "account"
       , DATE_FORMAT(FROM_ISO8601_DATE(time), '%Y-%m-%d') AS FechaHora
    FROM
         "testdata"
    

    Esta consulta mostrará las mismas columnas source y account, pero la columna FechaHora contendrá fechas en el formato “YYYY-MM-DD”.

Comments are closed.