C# LINQ 查询中的 ToString 转换
本文关键字:ToString 转换 LINQ 查询 | 更新日期: 2023-09-27 18:31:13
我在 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
我在这里做错了什么?
我不会通过将日期转换为字符串来牺牲日期的类型安全性 - 可能发生的情况是,ToString()
正在通过数据库中的 CAST
/CONVERT
转换为 *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;
请参阅附加的小提琴示例