我有一个gridview,gridview中的一列被称为“last checked”,这只是数据库中的datetime字段。
在“最后检查”栏中,而不是显示日期和时间,我要做的是显示“7天”或“1小时”或“7分钟”等等。
在我的grdView_RowDataBound子中(或者在SQL中更容易)...有谁知道最简单的方法是什么?
谢谢,
答案 0 :(得分:0)
好的我想我可以通过使用像CAST(DATEDIFF(mi,GETDATE(),GETDATE()+ 1)AS VARCHAR这样的东西在SQL中解决这个问题。
给我差异,然后用grdView_RowDataBound sub从那里抓取
感谢。
答案 1 :(得分:0)
如果您使用的是Sql-Server,则可以使用DATEDIFF
和CASE
从查询本身完成。
假设您需要忽略超过一天的小时数,并且如果距离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