linq到实体内的日期转换操作

时间:2015-02-10 14:34:28

标签: linq entity-framework

在第三方数据库中,日期以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

1 个答案:

答案 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

在代码中构建字符串并在查询中将其用作参数。为了获得相同的结果,您将节省大量的转换时间。