声明日期和所选日期不匹配

The*_*ner 3 sql t-sql sql-server datetime stored-procedures

我已经声明了一个名为@dt的日期时间变量 -

declare @dt Datetime = '2019-01-29 11:06:31.095'
Run Code Online (Sandbox Code Playgroud)

当我选择变量时,它会给出错误的日期

select @dt --it gives '2019-01-29 11:06:31.097'
Run Code Online (Sandbox Code Playgroud)

Gio*_*sos 6

根据手册:

datetime值四舍五入为.000,.003或.007秒的增量,如下表所示.

在明确提供的链接表显示你的价值是从转换的理由'.095''.097':

User-specified value    System stored value
-----------------------------------------------
01/01/98 23:59:59.999   1998-01-02 00:00:00.000
01/01/98 23:59:59.995

01/01/98 23:59:59.996

01/01/98 23:59:59.997

01/01/98 23:59:59.998   1998-01-01 23:59:59.997
Run Code Online (Sandbox Code Playgroud)

  • 解决方法是将代码迁移到`datetime2(3)` (2认同)