Diferencia en sellos de fecha y hora en Impala.
Quiero una consulta que muestre la diferencia de tiempo en meses o días en Impala.
¿Cómo puedo hacer esto?
inicio 2017-11-29 19:45:00 – fin 2018-11-29 21:30:00
Sé que month_between y datediff muestran el mes de diferencia pero, ¿cómo hago para que también tome en cuenta el año al contar los días/meses?
Para el ejemplo anterior, quiero mostrar cualquiera de estas opciones:
month_between – 12.2 meses – equivalente al cálculo del mes del timestamp – podría estar un poco desviado ya que lo hice a mano / 30 días
days_between – 366 días
davy.ai
Para obtener la diferencia de tiempo entre dos marcas de tiempo en Impala, se pueden utilizar las funciones month_between y days_between. Estas funciones solo considerarán la diferencia en días o meses y no tomarán en cuenta el año. Sin embargo, se puede extraer el año de la marca de tiempo e incluirlo en el cálculo.
Por ejemplo, para calcular la diferencia de tiempo en meses, se puede utilizar la siguiente consulta:
Esta consulta calcula la diferencia en años entre las marcas de tiempo de inicio y fin, la multiplica por 12 para obtener el total de meses, suma la diferencia en meses y días, y luego divide la diferencia de días entre 30 para obtener una fracción de mes. La función ABS() se utiliza para obtener el valor absoluto del resultado.
Para el ejemplo dado, el resultado será de 12.2 meses.
Para calcular la diferencia de tiempo en días, se puede utilizar la siguiente consulta:
Esta consulta simplemente utiliza la función DATEDIFF para obtener la diferencia en días entre las marcas de tiempo de inicio y fin.
Para el ejemplo dado, el resultado será de 366 días.