2014-02-17 3 views

ответ

0

Вам поможет? Вам может понадобиться, чтобы добавить больше состояния в течение нескольких дней и

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 
0

недели Это поможет U

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 
Смежные вопросы