我有下一个代码:
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
行[ “ENDTIME”]:
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
WHY ???
答案 0 :(得分:5)
也许this (Difference between DateTime in c# and DateTime in SQL server)会有所帮助。
您也可以使用Datetime2 for SQL
答案 1 :(得分:0)
对我来说,这似乎是一个舍入错误,DateTime
的刻度为635726928873700000
而Row
的{{1}}为635726928873716049
。这可能是由于数据库与DateTime的精度水平不同。
刻度线的差异意味着它们是不同的DateTimes。