[英]ToString conversion in the C# LINQ query
我在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
我在这里做错了什么?
我不会通过将Date转换为字符串来牺牲Date的类型安全性-可能发生的事情是,通过DB中的CAST
/ CONVERT
将ToString()
转换为* Char类型,这导致了不同的格式。 这是我的处理方式:
var checkDateTime = new DateTime(2014, 11, 12);
var result = from q in Table
where q.ValueDate == checkDateTime
select q;
您可以使用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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.