MS SQL Server从转换时间开始下降1毫秒

时间:2017-03-23 17:00:51

标签: sql-server

以下查询:

select convert(datetime, '2016-06-20 7:22:52.728')

给了我:

2016-06-20 07:22:52.727

在SQL Server v12.0.4100.1中。

无论我输入的值是几毫秒,结果总是少于1毫秒。

我错过了什么或这是一个错误吗?

2 个答案:

答案 0 :(得分:5)

这不是一个错误。日期时间的分辨率使得最后一位数字只能是几个值中的一个......环绕增量为.000,.003或.007秒。

记录在案:Microsoft documentation for datetime (Transact-SQL)

答案 1 :(得分:3)

这就是datetime在sql server中的工作方式。如果您想要那个毫秒,请切换到datetime2([3-7])

datetime准确度为0.00333秒。

datetime2准确度为100纳秒。

Date and Time Data Types and Functions (Transact-SQL)

同样,如果您希望获得额外准确度的服务器时间,则可以使用sysdatetime()返回datetime2(7)而不是返回getdate()的{​​{1}}。