带有datetime值的SQL查询显示不同的结果

Yog*_*esh 2 sql sql-server

当我执行以下查询时,为什么我得到不同的结果(.524 <> .523)?

select convert(datetime,'2013-07-08 09:20:17.524')
Run Code Online (Sandbox Code Playgroud)

结果: 2013-07-08 09:20:17.523

请指教 !!

Gar*_*thD 7

SQL-Server的DATETIME值四舍五入为.000,.003或.007秒的增量,所以这个

select convert(datetime,'2013-07-08 09:20:17.522')
Run Code Online (Sandbox Code Playgroud)

也会回来2013-07-08 09:20:17.523.这在MSDN上有记录

如果您需要更准确地使用存储DATETIME2(如果您可以使用(2008+)):

select convert(datetime2,'2013-07-08 09:20:17.524')
Run Code Online (Sandbox Code Playgroud)

  • 并且`DATETIME2`数据类型在SQL Server**2008**和更新版本中可用. (2认同)