10

存储在 SQL Server 中的日期时间值的基础数据结构是什么(如果不同,则为 2000 和 2005)?即到字节表示?

据推测,您选择日期时间列时获得的默认表示是特定于文化的值/可能会发生变化。也就是说,一些我们看不到的底层结构被格式化为 YYYY-MM-DD HH:MM:SS.mmm。

我问的原因是我的部门普遍认为它以 YYYY-MM-DD HH:MM:SS.mmm 的形式存储在内存中,但我确信情况并非如此。

4

1 回答 1

17

存储为 8 字节字段,范围从 1753-01-01 到 9999-12-31,精确到 0.00333 秒。

这些细节据说是不透明的,但我在网上找到的大多数资源(1)(2)如下所示:

前 4 个字节存储自 SQL Server 纪元(1900 年 1 月 1 日)以来的天数,后 4 个字节存储午夜之后的滴答数,其中“滴答”为 3.3 毫秒。

前四个字节是有符号的(可以是正数或负数),这解释了为什么可以表示比纪元更早的日期。

于 2009-07-17T13:28:58.967 回答