from p in table
where ID == 201
&& date => 20160601
&& date <= 20160901
select {ID, name};
q.Dump();
数据库中的日期采用字符串简单格式。 我试图将SQL查询转换为LINQ。在SQL中,BETWEEN运算符用于选择给定范围内的值。但是,BETWEEN不能与LINQ语句一起使用,所以我收到的错误是=&gt;不能应用于日期字段的字符串类型操作数和int。任何帮助都会被挪用。我尝试了DateTime,但它对我没用。
答案 0 :(得分:1)
由于LINQ to Entities不支持Convert.ToDateTime
(为什么不支持?)并且您的日期格式采用合理的字符串格式,因此您可以将其作为字符串进行比较:
from p in table
where ID == 201
&& date.CompareTo("20160601") >= 0
&& date.CompareTo("20160901") <= 0
select { ID, name };
答案 1 :(得分:0)
试试这个有效的代码:
var q = from p in table
where p.ID == 201
&& p.date >= DateTime.ParseExact("20160601", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
&& p.date <= DateTime.ParseExact("20160901", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
select p;
q.Dump();