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

具有datetime值的SQL查询显示不同的结果,sql,sql-server,Sql,Sql Server,当我执行下面的查询时,为什么会得到不同的结果(.524.523) 结果:2013-07-08 09:20:17.523 请指教 SQL Server的日期时间值被舍入为.000、.003或.007秒的增量,因此 select convert(datetime,'2013-07-08 09:20:17.522') 也将返回2013-07-08 09:20:17.523。这记录在 如果您需要更精确地存储,请使用DATETIME2(如果您可以使用(2008+): 该值将四舍五入。请参见此处的“准确性

当我执行下面的查询时,为什么会得到不同的结果(.524.523)

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


请指教

SQL Server的日期时间值被舍入为.000、.003或.007秒的增量,因此

select convert(datetime,'2013-07-08 09:20:17.522')
也将返回
2013-07-08 09:20:17.523
。这记录在

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


该值将四舍五入。请参见此处的“准确性”部分:

SQL Server 2008及更新版本中提供了
DATETIME2
数据类型。嗯,你说得对……选择convert(datetime,'2013-07-08 09:20:17.525')将获得2013-07-08 09:20:17.527作为result@GarethD完美的非常感谢:)
select convert(datetime,'2013-07-08 09:20:17.522')
select convert(datetime2,'2013-07-08 09:20:17.524')