在 SQL Server 2008 中,为什么以下查询返回相同的值?
-- These all return 2011-01-01 23:59:59.997
SELECT CAST('2011-01-01 23:59:59.997' as datetime)
SELECT CAST('2011-01-01 23:59:59.998' as datetime)
为什么以下查询会舍入到第二天?
-- Returns 2011-01-02 00:00:00.000
SELECT CAST('2011-01-01 23:59:59.999' as datetime)
最佳答案
SQL Server 中 DateTime 的精度始终为 1/300 秒(3.33 毫秒),因此任何不能精确划分的值都会被四舍五入。
为了获得更高的准确性,SQL Server 2008 中提供了 DateTime2 数据类型,可以精确到小数点后 7 位。
关于sql-server-2008 - SQL Server 2008 和毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153963/