日期时间不相等



我有下一个代码:

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

对我来说看起来像

一个舍入错误,DateTime635726928873700000的刻度,而Row635726928873716049。这可能是由于数据库与日期时间的精度级别不同。

刻度的差异意味着它们是不同的日期时间。

相关内容

  • 没有找到相关文章

最新更新