我有一个具有DueDate列的SQL Server数据库表。此列的数据类型为nvarchar(50),因此它将日期值作为字符串保存到此列中。
我正在使用实体框架从此表中获取记录。我的要求是只获取DueDate已经过去的记录,即DueDate< = TodaysDate的记录。但由于Linq to Entities不支持Covert.ToString()或Covert.ToDateTime()方法,因此我无法将DueDate值与今天的日期值进行比较。
请帮助我解决这个问题。
提前致谢。
答案 0 :(得分:0)
尝试将字符串解析为日期类型,如下所示: 我将当前日期存储在一个字符串中(假设它就像你从数据库中读取日期作为一个字符串),然后我将它解析为一个日期时间对象。
string StringDate = DateTime.Now.ToString();
DateTime Date = DateTime.Parse(StringDate);
答案 1 :(得分:0)
试试这个。
DateTime startDate = DateTime.Now;
string dateToCompare = startDate.ToString("dd/MM/yyyy");
var result = from Table in context.Table where Table.DueDate.CompareTo(dateToCompare) <= 0
select Table.ID;
List<int> resultBrands = result.ToList(); // it should be select just Table but I will show the results to be clear.
这是结果,(我使用测试数据库)
希望有所帮助,