Translate

Calculation of elapsed time from DATETIME() in SQL Server

We can calculate elapsed time from DATETIME() function of SQL Server by extracting number of hours, minutes and seconds. Below query can be used to calculate the elapsed time between two given dates:

DECLARE @dt_start_date DATETIME
DECLARE @dt_end_date DATETIME

SET @dt_start_date = '2014-01-01 11:30:45'
SET @dt_end_date = '2014-01-10 01:22:30'

SELECT CAST((DATEDIFF(HOUR , @dt_start_date, @dt_end_date) / 24) AS VARCHAR)  + ':'
       + CAST((DATEDIFF(HOUR , @dt_start_date, @dt_end_date) % 24) AS VARCHAR)  + ':'
       + CAST((DATEDIFF(MINUTE, @dt_start_date, @dt_end_date) % 60) AS VARCHAR) + ':'
       + CAST((DATEDIFF(SECOND, @dt_start_date, @dt_end_date) % 60) AS VARCHAR) AS [Elapsed Time (DD:HH:MM:SS)],
       CAST((DATEDIFF(HOUR , @dt_start_date, @dt_end_date) / 24) AS VARCHAR) + ' Days '
       + CAST((DATEDIFF(HOUR , @dt_start_date, @dt_end_date) % 24) AS VARCHAR) + ' Hours '
       + CAST((DATEDIFF(MINUTE, @dt_start_date, @dt_end_date) % 60) AS VARCHAR) + ' Minutes '
       + CAST((DATEDIFF(SECOND, @dt_start_date, @dt_end_date) % 60) AS VARCHAR) + ' Seconds ' AS [Elapsed Time (String Format)]

Output:

Elapsed Time (DD:HH:MM:SS)        Elapsed Time (String Format)

8:14:52:45                                               8 Days 14 Hours 52 Minutes 45 Seconds



No comments:

Post a Comment