我在C#
中使用字符串比较(很可能是一个微不足道的问题)我正在运行此LINQ查询
var result = from q in Table
where q.ValueDate.ToString() == "12/11/2014 12:00:00 AM"
select q;
并获得空回复
然而,当我尝试
时foreach (var i in Table)
{
Console.WriteLine(i.ValueDate.ToString());
}
我得到了
12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM
我在这里做错了什么?
答案 0 :(得分:3)
我不会通过将Date转换为字符串来牺牲Date的类型安全性 - 可能发生的事情是ToString()
通过CAST
/ {{转换为* Char类型DB中的1}},导致格式不同。我就是这样做的:
CONVERT
答案 1 :(得分:0)
您可以使用DateTime
对象而不是字符串比较:
DateTime filter = new DateTime(2014,12,11);
var result = from q in Table
where q.ValueDate == filter)
select q
或尝试指定日期格式:
var result = from q in Table
where q.ValueDate.ToString("dd/MM/yyyy hh:mm:ss tt") == "12/11/2014 12:00:00 AM"
select q;