グリッドビューがあり、グリッドビューの列の1つは「最終チェック済み」と呼ばれ、これは単にデータベースの日時フィールドです。
「最後にチェックした」列に、日付と時刻を表示する代わりに、「7日」、「1時間」、「7分」などを表示したいと思っていました。
私のgrdView_RowDataBoundサブ(または簡単な場合はSQL)で...これを行う最も簡単な方法を誰かが知っていますか?
ありがとう、
OK、CAST(DATEDIFF(mi、GETDATE()、GETDATE()+ 1)AS VARCHAR)のようなものを使用してSQLでこれを解決できると思います
分単位で違いを教えてから、grdView_RowDataBoundsubを使用してそこから取得します
ありがとう。
Sql-Serverを使用している場合は、とを使用してクエリ自体から実行できDATEDIFF
ますCASE
。
last_checked日時から1日以上の場合は時間を無視し、1時間以上の場合は分を無視する必要があると仮定すると、これを試すことができます。
--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