在第三方数据库中,日期以YYYYMMDD格式存储为字符串。
在SQL中,我可以使用以下语句:
WHERE convert(datetime,convert(varchar(8),a.appt_date,112)) = convert(datetime,convert(varchar(8), dateadd(dd,+1,getdate()), 112))
在LINQ to EF中我能做些类似的事吗?或者是我在记忆中做的唯一选择,例如:
dim data = (from item in entities.itemsSet).ToList()
dim filtered = from item in data
where Convert.ToDateTime(shift.starttime) >= startDate
&& Convert.ToDateTime(shift.endtime) < endDate
select item
答案 0 :(得分:1)
dim d = SomeDate
dim d0 = d.Date().ToString("yyyyMMdd")
dim d1 = d.AddAys(1).ToString("yyyyMMdd")
dim filtered = from item in data
where d0 >= startDate
&& d1 < endDate
select item
在代码中构建字符串并在查询中将其用作参数。为了获得相同的结果,您将节省大量的转换时间。