【发布时间】:2012-09-12 19:26:15
【问题描述】:
我正在尝试比较实体框架中的日期值。
DateTime selectedDate = Calendar1.SelectedDate;
var result = context.EventsTable.Where(ev =>ev.EventDate.Equals(selectedDate));
ev.EventDate 来自 SQL Server 2008,selectedDate 是 ASP:Calendar 的选定日期。 在 SQL Server 2008 中,日期存储为:2012-09-03 00:00:00 而日历的 SelectedDate 中的日期值是 2012-09-03 12:00:00AM 格式。
【问题讨论】:
-
日期是日期。显示格式与存储或计算无关。你的代码有效吗?
-
我的代码正在运行,但比较失败,尽管日期相同。
-
这可能意味着它们相差几毫秒,或者存在隐藏的时区问题。
-
如果您在 SQL Server 中使用
datetime作为类型,则可能是舍入/精度问题:stackoverflow.com/a/11620980/270591 请注意,SQL Server 中的datetime不如 .NET 中的DateTime精确。 SQL Server 中的datetime2更适合从 .NET 中的DateTime映射。
标签: asp.net linq entity-framework date comparison