asp.net - 今天和其他日期之间的区别

时间:2013-01-28 10:38:54

标签: asp.net tsql

我有一个gridview,gridview中的一列被称为“last checked”,这只是数据库中的datetime字段。

在“最后检查”栏中,而不是显示日期和时间,我要做的是显示“7天”或“1小时”或“7分钟”等等。

在我的grdView_RowDataBound子中(或者在SQL中更容易)...有谁知道最简单的方法是什么?

谢谢,

2 个答案:

答案 0 :(得分:0)

好的我想我可以通过使用像CAST(DATEDIFF(mi,GETDATE(),GETDATE()+ 1)AS VARCHAR这样的东西在SQL中解决这个问题。

给我差异,然后用grdView_RowDataBound sub从那里抓取

感谢。

答案 1 :(得分:0)

如果您使用的是Sql-Server,则可以使用DATEDIFFCASE从查询本身完成。

假设您需要忽略超过一天的小时数,并且如果距离last_checked日期时间超过一小时则忽略分钟数,则可以尝试此操作。

--Some data to work with
declare @t table ([last_checked] datetime)
insert into @t ([last_checked]) values ('20130127 09:15:21'),('20130128 09:15:21'),('20130128 11:25:21')

--Query
select case when totMinutes >= 60*24 then 
                 convert(varchar(12), totMinutes/(60*24)) + ' day(s)'
            when totMinutes >= 60 then 
                 convert(varchar(12), totMinutes/(60)) + ' hour(s)'
       else convert(varchar(12), totMinutes) + ' min(s)' end timingCol
from (
     select datediff(minute,[last_checked],getdate()) totMinutes
from @t ) X