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.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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 y from_unixtime. Así es como puede usarlas para convertir su columna de cadena a marca de tiempo:

    SELECT from_unixtime(unix_timestamp(nombre_de_su_columna, 'dd-MMM-yyyy hh:mm a')) AS columna_de_tiempo 
    FROM nombre_de_su_tabla;
    

    En la consulta anterior, reemplace nombre_de_su_columna por el nombre de su columna de cadena y nombre_de_su_tabla por el nombre de su tabla. La función unix_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ón from_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:

    SELECT from_unixtime(unix_timestamp(nombre_de_su_columna, 'dd-MMM-yyyy HH:mm')) AS columna_de_tiempo 
    FROM nombre_de_su_tabla;
    

    La única diferencia aquí es que la cadena de formato de tiempo usa HH en lugar de hh, 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.

Comments are closed.