将字符串转换为日期时间时,毫秒精度会发生变化

When converting string to datetime the milliseconds precision is changing

我正在尝试像这样将字符串转换为日期时间 select CONVERT(datetime, '31-05-2022 04:00:00.105', 105),但是毫秒的精度发生了变化。怎么可能?

就我而言,它给了我 2022-05-31 04:00:00.107

感谢您的帮助。

日期时间仅精确到 3.33 毫秒。如果您尝试楔入一个比该值更精确的值,MS SQL 将四舍五入到接近可接受的值。此处提供更多信息:

Milliseconds in my DateTime changes when stored in SQL Server

您可以尝试使用 'datetime2'(或 'datetimeoffset')列类型来满足更高的精度要求

select CONVERT(datetime2, '31-05-2022 04:00:00.105', 105)