首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TSQL日期时间大小

TSQL日期时间大小
EN

Stack Overflow用户
提问于 2013-06-11 01:42:50
回答 1查看 4K关注 0票数 4

我在浏览关于T-SQL中的数据类型大小的msdn时,注意到一些我有点困惑的事情。

根据http://msdn.microsoft.com/en-us/library/ms186724.aspx的说法,datetime使用8个字节,存储1753年至9999年的日期,时间精度为hh:mm:ss.nnn。现在,如果你分开看日期和时间,时间使用3-5个字节来存储hh:mm:ss.nnnnnnn,而日期使用3个字节来存储0-9999年。

让我困惑的是,单独使用日期和时间比datetime提供了更大的年份和时间范围,精度比datetime多4位,但它们都使用8字节?为什么datetime具有较小的范围和较低的精度,但使用相同的大小来存储自身?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 07:10:00

Datetime数据类型位于单独的date和time数据类型之前。Datetime数据类型使用8个字节作为两个整数。将01/01/1900存储为0的第一个整数将1900年1月1日之前的任何天数存储为负数,而将1900年1月1日之后的任何日期存储为表示01/01/1900之后的天数的正整数。

日期只从1753年开始的原因是,这是公历的开始,在此之前的任何一天,您都需要知道国家才能确定日期。这是最初的Sybase开发人员做出的决定,Sql Server就是从Sybase开发人员演变而来的。

时间整数部分存储自午夜以来的滴答数。滴答是1/300秒。

在这里可以找到很好的示例和信息;http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-are-dates-stored-in-sql-serverhttp://karaszi.com/the-ultimate-guide-to-the-datetime-datatypes

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17029757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档