SQL Server 2008 and milliseconds

后端 未结 2 1462
难免孤独
难免孤独 2020-12-18 22:07

In SQL Server 2008, why do the following queries return the same value?

-- These all return 2011-01-01 23:59:59.997
SELECT CAST(\'2011-01-01 23:59:59.997\' a         


        
2条回答
  •  太阳男子
    2020-12-18 22:46

    The accuracy of DateTime within SQL Server has always been to 1/300s of a second (3.33ms), so any value that does not divide precisely gets rounded.

    • 997 stays as it is
    • 998 will round to 997
    • 999 will round up to 000

    To get additional accuracy, there is the DateTime2 data type, available in SQL Server 2008 onwards, that can be accurate to 7 decimal places.

提交回复
热议问题