Eri*_*ric 3 .net c# linq datetime linq-to-entities
我有以下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;
Run Code Online (Sandbox Code Playgroud)
如果我此时破坏了代码,并查看调试器中的对象,我得到了date对象:
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
Run Code Online (Sandbox Code Playgroud)
我从表中检索到的记录得到了这个:
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
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它们会在几毫秒内完成.
任何人都可以解释为什么这样,以及我如何解决它?我需要能够查询与DateTime内存中的对象完全匹配的记录,但是这种行为导致我的查询空手而归.
DateTimeSQL Server中字段的分辨率与DateTime.NET类中的字段不同.
从MSDN - datetime(Transact-SQL):
准确度:舍入为.000,.003或.007秒的增量
所以,在你的情况下,毫秒被舍入到.007,.3470000而不是.3450602.
在DateTime2SQL Server数据类型具有100纳秒,像.NET的分辨率,所以可以是合适的替代品.
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |