Translate

How to get string after last index of a character in SQL Server

To get string after last index of a string use following line of code:

DECLARE @vc_string varchar(100)

SET @vc_string = 'a/b/c/d'

SELECT REVERSE(SUBSTRING(REVERSE(@vc_string), 0, CHARINDEX('/', REVERSE(@vc_string)))) AS vc_value

Above query will give output d

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