我有以下clientdetails表
** cligenate (varchar(50))
07/26/2013 一个07/25/2013 b07/24/2013 c07/23/2013 d07/22/2013 e * *
假设我的todate(DateTime)是07/22/2013,fromDate(DateTime)是07/24/2013
和结果将是
** cligenate (varchar(50))
07/24/2013 c07/23/2013 d07/22/2013 e * *
i want Linq query
我已经尝试了以下代码,但给出了一个错误消息
var Result =
(from a in Context.CliientDetails.AsEnumerable()
where a.cliUserName == SalesEmail
&& DateTime.Parse(a.cliGenDate)>=todate
&& DateTime.Parse(a.cliGenDate)>=FromDate
select new NewClientReg_BusinessLayer.Models.viewClientDetails
{
cliGenDate = a.cliGenDate,
cliAckNo = a.cliAckNo,
cliFullName = a.cliFullName,
cliTopic = a.cliTopic,
cliCourse = a.cliCourse,
cliDomain = a.cliDomain,
cliTotalInvest = a.cliTotalInvest
});
,但它给出以下错误信息字符串未被识别为有效的日期时间。
尝试使用DateTime。ParseExact代替DateTime.Parse
var provider = CultureInfo.InvariantCulture;
然后 && DateTime.ParseExact(a.clieGenDate, "dd/MM/yyyy", provider) >= todate
现在好问题是:为什么要将日期存储为varchar ?
您可能知道使用.AsEnumerable()
,您将在应用where子句之前检索所有数据?
你至少可以做
from a in Context.CliientDetails.Where(c => c.cliUserName == SalesEmal).AsEnumerable()
...