SQLServer的日期时间格式存储为8个字节,其中前4个字节是自1900年1月1日以来的天数,另外4个字节是自午夜以来的滴答数。而一滴答是1/300秒。 我想知道为什么是1/300秒呢?这其中一定有历史原因。
是的,有一个历史原因:UNIX!关于详细信息,请阅读Joe Celko的优秀文章。以下是您要查找的详细信息:T-SQL中的时间数据曾经是“UNIX系统时钟滴答声”的囚犯,并且只能到三位小数秒(存在舍入误差)。新的ANSI / ISO数据类型可以到达七位小数秒,并具有真正的DATE和TIME数据类型。由于它们是新的,大多数程序员尚未使用它们。
997
或使用其他技巧进行计算,那么如果你转移到datetime2
,你将不得不更改所有代码。 - Damien_The_Unbeliever