如何使用和比较c#linq和sql中的字符串datetime?

如何使用和比较c#linq和sql中的字符串datetime?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我的电脑上有数据库,并以nchar格式保存到数据库日期中,我想使用以下查询: var query = (from t in behzad.STATUS where DateTime.Parse(t.date) >= DateTime.Parse("1394/4/21") <= DateTime.Parse(NOW) select p).ToArray(); var query=(来自behzad.STATUS中的t 其中Da

我的电脑上有数据库,并以
nchar
格式保存到数据库日期中,我想使用以下查询:

 var query = (from t in behzad.STATUS
              where DateTime.Parse(t.date) >= DateTime.Parse("1394/4/21") <= DateTime.Parse(NOW)
              select p).ToArray();
var query=(来自behzad.STATUS中的t

其中DateTime.Parse(t.date)>=DateTime.Parse(“1394/4/21”)您不能在linq to entities中使用parse方法,并且您正在db对象中使用字符串值,因此无法在前面进行分析并传入变量。请尝试获取结果,然后对其进行筛选。这对于大型数据集来说并不理想,因为您需要将更多数据拉入内存,但这是最简单的方法:

var data = behzad.STATUS.ToList();
var query = data.Where(t => DateTime.Parse(t.date) >= DateTime.Parse("1394/4/21") <= DateTime.Parse(NOW)).ToArray();
var data=behzad.STATUS.ToList();
var query=data.Where(t=>DateTime.Parse(t.date)>=DateTime.Parse(“1394/4/21”)t.date/*这现在是一个DateTime对象*/>=date1使用ToList()从SQL域中出来,然后尝试解析日期,如下所示:

var query = (from t in behzad.STATUS.ToList()
              where DateTime.Parse(t.date) >= new DateTime(1394,4,21) <= DateTime.Now
              select p).ToArray();
var query=(来自behzad.STATUS.ToList()中的t)

where DateTime.Parse(t.date)>=new DateTime(1394,4,21)将数据库更改为使用正确的日期而不是字符串。@DavidG我无法更改它。可能是这样,但有时您只能使用以前使用过的日期given@DavidG他只是询问数据库字符串的解析问题,已知该字符串不适用于DateTime.Parse()。答案只反映了这一点。@user3671271请注意,如果/当此表增长时,您的应用程序将因此停止。@DavidG我已经在原始答案中添加了一条注释来警告他:)
var query = (from t in behzad.STATUS.ToList()
              where DateTime.Parse(t.date) >= new DateTime(1394,4,21) <= DateTime.Now
              select p).ToArray();