Convertir la columna de String que tiene AM/PM a Timestamp en Impala.
Tienes una columna que tiene valores en tipo string como los siguientes:
31-Oct-2016 12:00 AM
31-May-2015 12:00 PM
Quiero convertir los valores de la columna a timestamp en IMPALA. Lo he intentado con “cast”, “to_timestamp” y otras formas, pero me muestra un error de sintaxis o resultado nulo.
¿Podría sugerirme una solución, por favor?
2do Requisito
Hay una columna como la siguiente en string, y quiero convertirla únicamente a timestamp.
31-Oct-2016 12:00
31-May-2015 12:00
Por favor, sugiérame una manera, soy nuevo en Impala.
Gracias de antemano.
davy.ai
Convertir cadena a marca de tiempo en Impala
Para convertir una columna de cadena a marca de tiempo en Impala, puede usar las funciones
unix_timestamp
yfrom_unixtime
. Así es como puede usarlas para convertir su columna de cadena a marca de tiempo:En la consulta anterior, reemplace
nombre_de_su_columna
por el nombre de su columna de cadena ynombre_de_su_tabla
por el nombre de su tabla. La funciónunix_timestamp
convierte la cadena al formato de marca de tiempo UNIX usando la cadena de formato especificada'dd-MMM-yyyy hh:mm a'
, que corresponde al formato de fecha en su cadena de entrada. La funciónfrom_unixtime
convierte la marca de tiempo UNIX en un tipo de datos de marca de tiempo.Convertir cadena a marca de tiempo (sin AM/PM) en Impala
Para convertir su columna de cadena a una marca de tiempo sin AM/PM en Impala, puede modificar la cadena de formato en la función
unix_timestamp
de la siguiente manera:La única diferencia aquí es que la cadena de formato de tiempo usa
HH
en lugar dehh
, lo que significa que espera la hora del reloj en lugar de la hora del reloj de 12 horas. Esto producirá una marca de tiempo sin el indicador AM/PM.¡Espero que esto ayude! Háganos saber si tiene alguna pregunta adicional.