select * from Tickets where ( case when UnloadTime is null then datediff(hh,LoadTime,getdate()) else datediff(hh,LoadTime,UnloadTime) end)>=48
这种方式是可以的
Linq时间差:
//linq = linq.Where(x => System.Data.Entity.Core.Objects.EntityFunctions.DiffMilliseconds(x.LoadTime, x.UnloadTime)>48); linq = linq.Where(x => System.Data.Entity.DbFunctions.DiffHours(x.LoadTime, x.UnloadTime) >= 48);
上面一种就很旧版本,下面是新的版本
sql时间方法应用
获取某日期的当天开始时间:
declare @Now datetime='2017-11-29 15:49:00'; --获取@Now日期的开始时间,例如-2017-11-29 00:00:00.000 declare @MinTodayTime datetime=convert(datetime,convert(varchar(10),@Now,120)); select @MinTodayTime;
datediff:
SELECT datediff( day,'1999/07/19 23:00','1999/07/20 01:59' )