0
我想比較日期並顯示與MSSQL 2008嘰嘰喳喳樣式格式(2秒前,1分鐘前,2天前等)的差異。任何幫助將不勝感激。 在此先感謝。與MSSQL 2008的Twitter樣式時間表
我想比較日期並顯示與MSSQL 2008嘰嘰喳喳樣式格式(2秒前,1分鐘前,2天前等)的差異。任何幫助將不勝感激。 在此先感謝。與MSSQL 2008的Twitter樣式時間表
這會幫助你嗎? 您可能需要增加更多的條件幾天和幾周
declare @dt datetime =getdate();
declare @posttime datetime =dateadd(SECOND,-2,getdate());
declare @diff bigint;
set @diff=datediff(SECOND,@posttime,@dt)
select case when @diff<60 then
convert(varchar(2),@diff)+' seconds ago'
when @diff between 60 and 3599 then
convert(varchar(2),@diff/60)+' minutes ago'
else
convert(varchar(2),@diff/3600)+' hours ago'
end
--Next post which was about 1 minute ago
set @posttime=dateadd(SECOND,-62,getdate());
set @diff=datediff(SECOND,@posttime,@dt)
select
case when @diff<60 then
convert(varchar(2),@diff)+' seconds ago'
when @diff between 60 and 3599 then
convert(varchar(2),@diff/60)+' minutes ago'
else
convert(varchar(2),@diff/3600)+' hours ago'
end
這將幫助ü
DECLARE @D DATETIME
SET @D = CAST('2014-02-17 13:10:50.053' AS DATETIME)
SELECT @D
SELECT GETDATE()
SELECT CASE WHEN DATEDIFF(HH,@D,GETDATE()) > 48 THEN CAST(DATEDIFF(D,@D,GETDATE()) AS VARCHAR(20))+' DAYS AGO'
WHEN DATEDIFF(HH,@D,GETDATE()) > 24 THEN CAST(DATEDIFF(D,@D,GETDATE()) AS VARCHAR(20))+' DAY AGO'
WHEN DATEDIFF(HH,@D,GETDATE()) > 1 THEN CAST(DATEDIFF(HH,@D,GETDATE()) AS VARCHAR(20))+' HOURS AGO'
WHEN DATEDIFF(HH,@D,GETDATE()) = 1 THEN CAST(DATEDIFF(HH,@D,GETDATE()) AS VARCHAR(20))+' HOUR AGO'
WHEN DATEDIFF(MINUTE,@D,GETDATE()) > 1 THEN CAST(DATEDIFF(MINUTE,@D,GETDATE()) AS VARCHAR(20))+' MINUTES AGO'
WHEN DATEDIFF(MINUTE,@D,GETDATE()) = 1 THEN CAST(DATEDIFF(MINUTE,@D,GETDATE()) AS VARCHAR(20))+' MINUTE AGO'
WHEN DATEDIFF(SECOND,@D,GETDATE()) > 1 THEN CAST(DATEDIFF(SECOND,@D,GETDATE()) AS VARCHAR(20))+' SECS AGO'
WHEN DATEDIFF(SECOND,@D,GETDATE()) = 1 THEN CAST(DATEDIFF(SECOND,@D,GETDATE()) AS VARCHAR(20))+' SEC AGO'
END TIMESPAN