Friday, August 30, 2013

Datediff - convertir horas A decimal

Me pidieron saber el tiempo transcurrido en horas dada dos fechas. Fecha hora inicial en la que el Call Center recibió una llamada hasta la hora fecha en la que se dio respuesta a esa llamada.

Fecha Hora inicial: 30/08/2013 07:30:30
Fecha Hora final: 30/08/2013 08:00:00

Dado ese ejemplo, tenemos que transcurrieron 1.51 horas de tiempo. Pero resulta que cuando realizamos alguna división, la función Datediff omite la parte decimal y por tanto el cálculo ya no es exacto.

La siguiente línea de código muestra cómo hacerlo. Cómo convertir horas a decimal utilizando DATEDIFF

declare @start datetime
set @start = '2013-08-29 07:00:00'

declare @end datetime
set @end = '2013-08-29 08:30:30' --getdate() 1,51
select cast(datediff(second, @start, @end) / 3600.0 as decimal (10, 2))


Fácil, ¿no?