Will this help you? You may need to add more condition for days and weeks
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