Como usar datediff para mostrar resultados como HH:MM:SS

A Veces necesitas HH:MM:ss

I ran into a case when I needed to display some results in the HH:MM:SS format. Todos conocemos DATEDIFF, que nos da resultados en números enteros. Usando DATEDIFF, miramos resultados como esto:

--	Declare dos variables de DATETIME
DECLARE	@START_DATE	DATETIME
DECLARE	@END_DATE	DATETIME	--	Actualice las variables a los valores deseados
SET		@START_DATE = '2011-01-01 16:00:00'
SET		@END_DATE =   '2011-01-01 22:47:22'
SELECT DATEDIFF(second,@Start_date, @END_DATE) AS Segundos
Segundos
24442

(1 row(s) affected)


Los resultados son correctos, pero no quiero entregar esto al usuario en este formato. Busqué y encontré lo que estaba buscando en SQLServerCentral.com. Aquí está la versión final en TSQL:

--	Declare dos variables de DATETIME
DECLARE	@START_DATE	DATETIME
DECLARE	@END_DATE	DATETIME	--	Actualice las variables a los valores deseados
SET		@START_DATE = '2011-01-01 16:00:00'
SET		@END_DATE =   '2011-01-01 22:47:22'--	Usa datediff para mostrar los resultados in HH:MM:SS

SELECT    CONVERT(varchar(6), DATEDIFF(second, @START_DATE, @END_DATE)/3600)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2), (DATEDIFF(second, @START_DATE, @END_DATE) % 3600) / 60), 2)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2), DATEDIFF(second, @START_DATE, @END_DATE) % 60), 2) AS 'HH:MM:SS'
HH:MM:SS
6:47:22

Los resultados vuelven en un formato más agradable y fácil de leer.


Posted

in

,

by

Comments

One response to “Como usar datediff para mostrar resultados como HH:MM:SS”

  1. Miriam Avatar
    Miriam

    Muchas gracias!