DateTime不相等

时间:2015-06-17 08:44:36

标签: c# datetime

我有下一个代码:

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 ???

2 个答案:

答案 0 :(得分:5)

也许this (Difference between DateTime in c# and DateTime in SQL server)会有所帮助。

您也可以使用Datetime2 for SQL

答案 1 :(得分:0)

对我来说,这似乎是一个舍入错误,DateTime的刻度为635726928873700000Row的{​​{1}}为635726928873716049。这可能是由于数据库与DateTime的精度水平不同。

刻度线的差异意味着它们是不同的DateTimes。