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

时间:2013-10-21 11:44:11

标签: sql sql-server

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

select convert(datetime,'2013-07-08 09:20:17.524')

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

请建议!!

2 个答案:

答案 0 :(得分:7)

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

select convert(datetime,'2013-07-08 09:20:17.522')

也会返回2013-07-08 09:20:17.523。这在MSDN

中有记录

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

select convert(datetime2,'2013-07-08 09:20:17.524')

答案 1 :(得分:0)

该值四舍五入。请参阅“准确度”下的http://msdn.microsoft.com/de-de/library/ms187819.aspx?ppud=4