You can use this to find the difference between two dates:
SELECT
convert(VARCHAR, abs(datediff(second, @date1, @date2) / 60 / 60 / 24))
+ ':' +
convert(VARCHAR, abs(((datediff(second, @date1, @date2) / 60) / 60) % 24))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) / 60) % 60))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) % 60)))
You'll just have to change the @date1
and @date2
with the dates you need.
Here is a SQLFiddle where you can test this out.
If you really want to convert to datetime, use this:
SELECT
convert(DATETIME,
(convert(VARCHAR, abs(((datediff(second, @date1, @date2) / 60) / 60) % 24))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) / 60) % 60))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) % 60)))
)
+ dateadd(day,
abs(datediff(second, @date1, @date2) / 60 / 60 / 24),
'01-01-1900 00:00:00')
)
Here is a SQLFiddle for the second query