以下查询:
select convert(datetime, '2016-06-20 7:22:52.728')
给了我:
2016-06-20 07:22:52.727
在SQL Server v12.0.4100.1中。
无论我输入的值是几毫秒,结果总是少于1毫秒。
我错过了什么或这是一个错误吗?
答案 0 :(得分:5)
这不是一个错误。日期时间的分辨率使得最后一位数字只能是几个值中的一个......环绕增量为.000,.003或.007秒。
答案 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}}。