declare @WorkingHours int,@TotalHours varchar(50)
Set @WorkingHours = 0
Select @WorkingHours = DateDiff (second, getdate()-1, getdate())
SELECT @TotalHours = CASE WHEN LEN(H) = 1
THEN '0' + h
ELSE h END
+ ':' +
CASE WHEN LEN(m) = 1
THEN '0' + m
ELSE m END
+ ':' +
CASE WHEN LEN(s) = 1
THEN '0' + s
ELSE s END
FROM
(
select
CAST(@WorkingHours / 3600 AS VARCHAR(3)) as [h],
CAST(@WorkingHours % 3600 / 60 AS VARCHAR(3)) as [m],
CAST(@WorkingHours % 3600 % 60 AS VARCHAR(3))as [s])as x
select @TotalHours
2nd method
DECLARE @articleDT DATETIME;
DECLARE @nowDate DATETIME;
-- Time of the ARTICLE created
SET @articleDT = getdate()-365
-- Simulation of NOW datetime
-- (in real world you would probably use GETDATE())
SET @nowDate = '2015-10-21 06:45:05.703';
-- Created 9 days ago.
SELECT 'Created ' + CAST(DATEDIFF(day, @articleDT, @nowDate) AS NVARCHAR(50)) + ' days ago.';
-- Created 1 weeks, 2 days, 3 hours, 25 minutes and 20 seconds ago.
SELECT 'Created '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 / 24 / 7 AS NVARCHAR(50)) + ' weeks, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 / 24 % 7 AS NVARCHAR(50)) + ' days, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 % 24 AS NVARCHAR(50)) + ' hours, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 % 60 AS NVARCHAR(50)) + ' minutes and '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) % 60 AS NVARCHAR(50)) + ' seconds ago.';
Set @WorkingHours = 0
Select @WorkingHours = DateDiff (second, getdate()-1, getdate())
SELECT @TotalHours = CASE WHEN LEN(H) = 1
THEN '0' + h
ELSE h END
+ ':' +
CASE WHEN LEN(m) = 1
THEN '0' + m
ELSE m END
+ ':' +
CASE WHEN LEN(s) = 1
THEN '0' + s
ELSE s END
FROM
(
select
CAST(@WorkingHours / 3600 AS VARCHAR(3)) as [h],
CAST(@WorkingHours % 3600 / 60 AS VARCHAR(3)) as [m],
CAST(@WorkingHours % 3600 % 60 AS VARCHAR(3))as [s])as x
select @TotalHours
2nd method
DECLARE @articleDT DATETIME;
DECLARE @nowDate DATETIME;
-- Time of the ARTICLE created
SET @articleDT = getdate()-365
-- Simulation of NOW datetime
-- (in real world you would probably use GETDATE())
SET @nowDate = '2015-10-21 06:45:05.703';
-- Created 9 days ago.
SELECT 'Created ' + CAST(DATEDIFF(day, @articleDT, @nowDate) AS NVARCHAR(50)) + ' days ago.';
-- Created 1 weeks, 2 days, 3 hours, 25 minutes and 20 seconds ago.
SELECT 'Created '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 / 24 / 7 AS NVARCHAR(50)) + ' weeks, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 / 24 % 7 AS NVARCHAR(50)) + ' days, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 / 60 % 24 AS NVARCHAR(50)) + ' hours, '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) / 60 % 60 AS NVARCHAR(50)) + ' minutes and '
+ CAST(DATEDIFF(second, @articleDT, @nowDate) % 60 AS NVARCHAR(50)) + ' seconds ago.';