SQL Server 2008和毫秒
在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 / 300s(3.33ms),所以任何不精确的值都会被舍入。
为了获得更高的准确性,SQL Server 2008中提供了DateTime2数据类型,可以精确到小数点后7位。
http://msdn.microsoft.com/en-us/library/ms187819.aspx上的datetime MSDN文档说
时间范围== 00:00:00至23:59:59.997准确度==以0.000,0.003或.007秒为增量
在链接的文档中还有一个“日期时间分数秒精度舍入”部分。
datetime2给你更多的准确性。
链接地址: http://www.djcxy.com/p/94399.html