加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server中的“money”和“decimal”数据类型如何存储在内存中

发布时间:2020-12-12 06:31:45 所属栏目:MsSql教程 来源:网络整理
导读:我想知道内存中的存储SQL Server数据类型. SQL Server中的money数据类型如何存储在内存中?我知道钱存储在8个字节中,而smallmoney存储在4个字节中.但我不知道怎么办? 例如,当您有123400.93的钱时,它是如何以8个字节存储的? 我有关于十进制和DATE数据类型的
我想知道内存中的存储SQL Server数据类型.

SQL Server中的money数据类型如何存储在内存中?我知道钱存储在8个字节中,而smallmoney存储在4个字节中.但我不知道怎么办?

例如,当您有123400.93的钱时,它是如何以8个字节存储的?

我有关于十进制和DATE数据类型的相同问题.

特别是对于DATE,格式为YYYY-MM-DD,但它如何以3个字节存储?它是否按照此处所述进行存储:http://dev.mysql.com/doc/internals/en/date-and-time-data-type-representation.html
或存储特定日期的天数?

解决方法

在这里添加一点……

单个字节由8位组成.一位可以容纳2个值(0或1).

所以4个字节是32位(4 x 8).这意味着可存储的数值范围为0到2 ^ 32,总范围为4,294,967,296.

smallmoney是有符号的,所以我们删除了一个用于符号的位,这留下了2 ^ 31,或2,147,483,648个可能的值和/ – 符号.

现在我们考虑到货币类型的最后4位数字总是在小数点后面,我们最终得到-214,748.3648到214,748.3647的范围

从技术上讲,通过在字或字节中翻转位来存储money和s??mallmoney值,就像其他所有内容一样.如果您需要更多信息,请阅读http://computer.howstuffworks.com/bytes.htm

或者你可能会看到这个可能的金钱范围和smallmoney:
http://technet.microsoft.com/en-us/library/ms179882.aspx

更新
对于DATETIME数据类型,它是相同的概念,有点扭曲.在MS SQL中,使用2个数字存储DATETIME.第一个是自19/1年1月1日以来的天数,第二个是自午夜以来的刻度数:
看到
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-are-dates-stored-in-sql-server和When storing a datetime in sql server (datetime type),what format does it store it in?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读