gpt4 book ai didi

sql - 货币和整数数据类型之间的区别

转载 作者:行者123 更新时间:2023-12-01 08:39:35 24 4
gpt4 key购买 nike

sql server 中的money 和bigint 数据类型有什么区别?

最佳答案

范围/精度
bigint范围是 -9,223,372,036,854,775,8089,223,372,036,854,775,807money范围是 -922,337,203,685,477.5808922,337,203,685,477.5807
贮存

它们都占用 8 个字节的存储空间并存储为大整数,唯一的区别是 SQL Server 理解最右边的 4 个数字在小数点之后。

如果你这样做

declare @m money = 1.2345
declare @b bigint = 12345

select cast(@m as BINARY(8)), cast(@b as BINARY(8))

你看存储是一样的。
------------------ ------------------
0x0000000000003039 0x0000000000003039

行为

然而 money数据类型的行为与您只使用 bigint 的行为不完全一样你自己。使用 money 进行计算 are to be avoided但它们仍然比类似的整数除法更精确。
declare @m money = 1.9999, @m2 money = 1

select @m/@m2 /*Returns 1.9999*/

declare @b bigint = 19999, @b2 bigint = 10000

select @b/@b2 /*Returns 1*/

关于sql - 货币和整数数据类型之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5362476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com