我有一个gridview,gridview 中的一列称为“最后检查”,这只是数据库中的一个日期时间字段。
在“最后检查”列而不是显示日期和时间,我想做的是显示“7 天”或“1 小时”或“7 分钟”等。
在我的 grdView_RowDataBound 子程序中(或者在 SQL 中,如果更容易的话)...有谁知道最简单的方法是什么?
谢谢,
好的,我想我可以通过使用 CAST(DATEDIFF(mi, GETDATE(), GETDATE()+1) AS VARCHAR) 在 SQL 中解决这个问题
在几分钟内给我差异,然后使用 grdView_RowDataBound 子从那里获取差异
谢谢。
如果您在 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