c# – LINQ to Entities DateTime不一致
发布时间:2020-12-16 00:18:22 所属栏目:百科 来源:网络整理
导读:我有以下C#代码创建一个DateTime,将其输入到表中,然后查询该表: DateTime date = DateTime.Now;DateTest newRecord = new DateTest { dateColumn = date};db.DateTest.AddObject(newRecord);db.SaveChanges();IQueryableDateTest records = from d in db.Da
我有以下C#代码创建一个DateTime,将其输入到表中,然后查询该表:
DateTime date = DateTime.Now; DateTest newRecord = new DateTest { dateColumn = date }; db.DateTest.AddObject(newRecord); db.SaveChanges(); IQueryable<DateTest> records = from d in db.DateTest select d; 如果我此时破坏代码,并查看调试器中的对象,我得到日期对象: Date {11/22/2011 12:00:00 AM} System.DateTime Day 22 int DayOfWeek Tuesday System.DayOfWeek DayOfYear 326 int Hour 8 int Kind Local System.DateTimeKind Millisecond 345 int Minute 59 int Month 11 int Second 33 int Ticks 634575491733450602 long TimeOfDay {08:59:33.3450602} System.TimeSpan Year 2011 int 我从表中检索到的记录得到了这个: Date {11/22/2011 12:00:00 AM} System.DateTime Day 22 int DayOfWeek Tuesday System.DayOfWeek DayOfYear 326 int Hour 8 int Kind Unspecified System.DateTimeKind Millisecond 347 int Minute 59 int Month 11 int Second 33 int Ticks 634575491733470000 long TimeOfDay {08:59:33.3470000} System.TimeSpan Year 2011 int 正如你所看到的,它们会在几毫秒内完成. 任何人都可以解释为什么这样,以及我如何解决它?我需要能够查询与内存中的DateTime对象完全匹配的记录,但是这种行为导致我的查询空手而归. 解决方法
SQL Server中DateTime字段的分辨率与DateTime .NET类的分辨率不同.
来自MSDN – datetime (Transact-SQL):
因此,在您的情况下,毫秒会向上舍入到.007,给出.3470000而不是.3450602.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |