none
为什么是3.33毫秒? RRS feed

  • 问题

  • 数据类型DATETIME共由8个字节组成,前4个字节是从1900-1-1的天数,后4个字节是从午夜0点开始的3.33毫秒数。

    为什么不是1毫秒,而是3.33毫秒?肯定不是字节容量的问题,因为每天的毫秒数为:24 * 60 * 60 * 1000 = 86400000,而4字节可以存放的最大数为2^32,这远远大于86400000.

    既然不是容量的原因,会是什么原因让DATETIME选择3.33毫秒呢?

    2011年7月14日 5:48

答案

  • 历史原因吧,为什么选择1753年作为起点好像是因为有两个日历的统一问题,我猜也许和当时的CPU时钟频率有关。
    Hope it helps.
    2011年7月14日 6:15

全部回复

  • 历史原因吧,为什么选择1753年作为起点好像是因为有两个日历的统一问题,我猜也许和当时的CPU时钟频率有关。
    Hope it helps.
    2011年7月14日 6:15
  • http://technet.microsoft.com/en-us/library/aa175784%28SQL.80%29.aspx

    这有一篇文章涉及了这个问题。

    2011年7月14日 6:20
  • datetime是8个字节,前4个字节表示从19000101开始的天数,后4个字节表示从00:00:00开始的10/3毫秒间隔的个数(最多精确到3又1/3毫秒)。

    只为什么这样,应该是by design吧。

     

    如果要使用更高的精度可以使用datetime2类型。


    family as water
    2011年7月14日 6:34