TSQL为什么将VARCHAR转换为DATETIME毫秒更改值

时间:2011-10-12 11:07:32

标签: sql-server-2005 tsql

我在TSQL中的日期时间转换存在问题(SQL 2005)。我正在尝试将此varchar值“2011-12-10 12:48:56.066”转换为Datetime但我遇到了问题。 Datetime值更改为“2011-12-10 12:48:56.067”,与原始值相差一毫秒。这与其他值(例如:“2011-12-10 12:48:56.067”)有关,但与其他值(“2011-12-10 12:48:56.013”或“2011-12-10 12:48:56.040”无关。)

任何人都可以解释为什么毫秒更改将varchar转换为datetime?

2 个答案:

答案 0 :(得分:4)

这是由于该决议的代表性。这不是错误。

datetime类型的分辨率为3.33 ms

[如果您使用的是SQL Server 2008,则可以使用精度高达100 ns的datetime2。]

答案 1 :(得分:0)

.066实际上是连续数字(0.06666667)。转换后,0.066轮进入0.067