当我在SQL Server中执行GETDATE
时,我得到,例如:
2021-01-29 17:07:56.319
但是当我把它放在一个CONVERT
函数,它四舍五入的结果,如:
SELECT CONVERT(datetime, '2021-01-29 17:07:56.319', 121);
返回'2021-01-29 17:07:56.320'
为什么?
,
SELECT CONVERT(datetime2, '2021-01-29 17:07:56.319');
返回预期结果:
'2021-01-29 17:07:56.319'
My SQL Server is 2017 (v14.0.1000).
感谢这与CONVERT
无关,与您选择的数据类型有关。根据它的文档:
精度:四舍五入到0.00000、0.003或0.007秒的增量
如果您希望您的值精确到1/1000秒,请使用可以具有该精度的数据类型。
SELECT CONVERT(datetime2(3), '2021-01-29 17:07:56.319', 121);
旁注:SQL Server版本14.0.1000(.169 .是SQL Server 2017RTM. 你已经4年没有更新你的SQL Server版本了!打开Windows Update并获得该实例的支持版本!