sql server中日期时间的内部表示是什么?
SQL Server 中存储的日期时间值的基础数据结构是什么(2000 和 2005,如果不同)? 即精确到字节表示?
据推测,当您选择日期时间列时获得的默认表示形式是特定于区域性的值/可能会发生变化。 也就是说,一些我们看不到的底层结构被格式化为 YYYY-MM-DD HH:MM:SS.mmm。
我问这个问题的原因是,我的部门普遍认为它在内存中的存储方式是 YYYY-MM-DD HH:MM:SS.mmm,但我确信情况并非如此。
What is the underlying datastructure of datetime values stored in SQL Server (2000 and 2005 if different)? Ie down to the byte representation?
Presumably the default representation you get when you select a datetime column is a culture specific value / subject to change. That is, some underlying structure that we don't see is getting formatted to YYYY-MM-DD HH:MM:SS.mmm.
Reason I ask is that there's a generally held view in my department that it's stored in memory literally as YYYY-MM-DD HH:MM:SS.mmm but I'm sure this isn't the case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它存储为 8 字节字段,范围为 1753- 01-01 到 9999-12-31,精确到 0.00333 秒。
细节据说是不透明的,但大多数资源(1),<我在网上找到的 href="http://sqlmag.com/sql-server/solving-datetime-mystery" rel="noreferrer">(2) 声明如下:
前四个字节是有符号的(可以是正数或负数),这解释了为什么可以表示早于纪元的日期。
It's stored as an 8 byte field, capable of a range from 1753-01-01 through 9999-12-31, accurate to 0.00333 seconds.
The details are supposedly opaque, but most resources (1), (2) that I've found on the web state the following:
The first four bytes are signed (can be positive or negative), which explains why dates earlier than the epoch can be represented.