使用linq比较日期的一部分

帕特里克

我需要使用LINQ将日期字符串"2010-06-11"与数据库中的字段值进行比较"2013-07-25 14:33:58.070",但仅比较年月日部分。

我尝试了这个:

updateDate = "2010-06-11";

_adRepository.Query.Where(p => p.DateModified.ToString("YYYYMMDD") <= updateDate).FirstOrDefault();

但这没用,有什么主意吗?

谢谢。

斯科特·科贝特(Scott Corbett)

前面未提到的问题之一是,您使用的测试数据将始终无法返回值。“ 2013-07-25”绝不会小于“ 2010-06-11”。

话虽这么说,您的代码实际上应该将updateDate变量转换为日期时间并进行比较,而不是转换表中的DateModifed字段。否则,转换将应用于数据库中的所有记录。我将使用的代码是:

var updateDateString = "2010-06-11";
DateTime updateDate;

if (DateTime.TryParse(updateDateString, out updateDate))
{
    _adRepository.Query.Where(p => p.DateModified <= updateDate).FirstOrDefault();
}
else
{
     // throw an exception or something
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章