Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq比较部分日期_C#_Linq - Fatal编程技术网

C# 使用linq比较部分日期

C# 使用linq比较部分日期,c#,linq,C#,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(); updateDate=“2010-06-11”; _adRe

我需要使用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();
updateDate=“2010-06-11”;
_adRepository.Query.Where(p=>p.DateModified.ToString(“yyyyymmdd”)这应该可以:


\u adRepository.Query.Where(p=>p.DateModified.Day日期格式不正确。您需要“yyyyMMdd”。但这是试图让linq进行字符串比较。如果您使用EF,它可能无法工作

将UpdateDate转换为DateTime,并在查询中使用它。

尝试以下操作:

DateTime updateDate = DateTime.Today;
_adRepository.Query.Where(p => p.DateModified.Date <= updateDate).FirstOrDefault()
DateTime updateDate=DateTime.Today;
_其中(p=>p.DateModified.Date
from q in\u adRepository.Query
其中DateTime.Compare(updatedatedate.Date,DateTime.Parse(q.DateModified.Date)这在LinqPad中有效

DateTime[] update = new DateTime[]{ new DateTime(2014,01,01), new DateTime(2014,01,29), new DateTime(2014,01,22)};

var selected = update.Where(x => x.Date <= new DateTime(2014,01,22).Date);
DateTime[]update=newdatetime[]{newdatetime(2014,01,01)、newdatetime(2014,01,29)、newdatetime(2014,01,22)};

var selected=update。其中(x=>x.Date前面没有提到的一个问题是,您使用的测试数据总是无法返回值。“2013-07-25”永远不会小于“2010-06-11”

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

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
}
var updateDateString=“2010-06-11”;
日期时间更新日期;
if(DateTime.TryParse(updateDataString,out updateDate))
{

_adRepository.Query.Where(p=>p.DateModified)有什么不起作用?引发了异常吗?无法比较类似的字符串hi,谢谢,但我得到了异常:引发:“LINQ to Entities无法识别方法‘System.DateTime Parse(System.String)’方法,此方法无法转换为存储表达式。”(System.NotSupportedException)您好,谢谢,但是我如何用我的updateDate变量映射日期?您是指这部分{updateDate=“2010-06-11”;}Datetime Update=Convert.ToDateTime(updateDate)…从字符串中获取日期时间
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
}