Linq datetime比较where子句
本文关键字:子句 where 比较 datetime Linq | 更新日期: 2023-09-27 18:04:53
我有一个表,其中有一对列,称为键和值。其中一个键名为requestdon,其值是保存为字符串的时间戳。
现在在我的linq查询中,我想比较这个时间戳,例如
var startDate = DateTime.Now.AddDays(-7);
var endDate = DateTime.Now;
var query = (from ep in db.ExtendedProperties
where
ep.Key == "RequestedOn" && ep.Value >= startDate && ep.Value <= endDate
select ep).ToList();
现在我知道我不能比较ep。值(字符串)对startDate或endDate,我不能转换ep。值赋给DateTime,因为它没有意义。有什么解决办法吗?
提前谢谢?
如果保存为字符串,则必须将其解析为DateTime
,然后比较
您可以:
- 将日期时间转换为字符串
- 将字符串转换为日期时间
- 写一个方法直接比较
- 别的
对于没有类型且包含不同数据的内容使用LINQ不是一个好的选择。LINQ的全部意义就在于拥有类型。
也就是说,你的问题的一个解决方案是将日期保存为与字符串类似的格式,如201405231801(23.05.2014 18:01),并只是比较字符串。
当然你关心时区和夏令时,你肯定会出错。
如果你正确保存你的字符串你实际上可以做一个比较:
例如:'20131201125959':年、月、日、时、分、秒。