我有下一个代码:
DateTime endTime = DateTime.Now.AddDays(30);
InsertIntoDatabase(endTime);
var row = Db.SelectRow("select endTime from MyTable Where @column=myval", columnValue);
Assert.Equal(row["endTime"], endTime); // This is false! Why?
断言是错误的。由于毫秒的某种原因,日期是不同的。为什么???
结束时间:
Date {7/17/2015 12:00:00 AM} System.DateTime
Day 17 int
DayOfWeek Friday System.DayOfWeek
DayOfYear 198 int
Hour 1 int
Kind Unspecified System.DateTimeKind
Millisecond 370 int
Minute 21 int
Month 7 int
Second 27 int
Ticks 635726928873700000 long
+ TimeOfDay {01:21:27.3700000} System.TimeSpan
Year 2015 int
行["结束时间"]:
Date {7/17/2015 12:00:00 AM} System.DateTime
Day 17 int
DayOfWeek Friday System.DayOfWeek
DayOfYear 198 int
Hour 1 int
Kind Local System.DateTimeKind
Millisecond 371 int
Minute 21 int
Month 7 int
Second 27 int
Ticks 635726928873716049 long
+ TimeOfDay {01:21:27.3716049} System.TimeSpan
Year 2015 int
为什么???
也许这(c# 中的 DateTime 和 SQL 服务器中的 DateTime 之间的差异)会有所帮助。
您还可以将 Datetime2 用于 SQL
对我来说看起来像
一个舍入错误,DateTime
有635726928873700000
的刻度,而Row
有635726928873716049
。这可能是由于数据库与日期时间的精度级别不同。
刻度的差异意味着它们是不同的日期时间。