SQLServre价格用什么字段类型好?

时间:2022-11-15 14:52:19
需要一个产品的价格字段,需要用这个价格*数量可以算一些总价等,用什么字段类型合适?看选项中有money?或者numeric、decimal?用什么呢?

18 个解决方案

#1


numeric(18,2)

#2


decimal

#3


numeric(18,2)

#4


decimal(18,2)
如果没有小数decimal(18,0)
numeric是为了兼容SQL老版本的,2000 以后都可以不用了

#5


decimal和numeric有没有却别? 一般价格要小数点后几位呢?

#6


看我4楼的那个吧,一般都保留2位小数。

#7


一般都以元为单位,精确到后两位,如果有特殊需求,比如以万元为单位,可以根据需求精确到小数点后3-4位等
看实际需求

如果在数据库的查询字符串中有金额的加减乘除运算等,可以设定字段类型为numeric(18,3),精确到小数点后三位,然后在程序中格式化为四舍五入到小数点后两位。这样比较精确。

#8


decimal(18,2)

#9


有 money 类型

#10


decimal

#11


decimal(18,2)

#12


我用的是sql2005,用的是money

#13


--支持使用
decimal(18,2)

#14


我的是float,我觉得它足够了

#15


引用 5 楼 zjwjmmx 的回复:
decimal和numeric有没有却别? 一般价格要小数点后几位呢?

http://msdn.microsoft.com/zh-cn/library/ms187746.aspx

#16


引用 13 楼 maco_wang 的回复:
SQL code
--支持使用
decimal(18,2)

同意

#17


个人感觉最好不要用decimal因为decimal性能不高,原因如下clr没有将decimal看成一个基元类型也就是意味着clr没有直接操作decimal值的指令

#18


decimal(19,4)

#1


numeric(18,2)

#2


decimal

#3


numeric(18,2)

#4


decimal(18,2)
如果没有小数decimal(18,0)
numeric是为了兼容SQL老版本的,2000 以后都可以不用了

#5


decimal和numeric有没有却别? 一般价格要小数点后几位呢?

#6


看我4楼的那个吧,一般都保留2位小数。

#7


一般都以元为单位,精确到后两位,如果有特殊需求,比如以万元为单位,可以根据需求精确到小数点后3-4位等
看实际需求

如果在数据库的查询字符串中有金额的加减乘除运算等,可以设定字段类型为numeric(18,3),精确到小数点后三位,然后在程序中格式化为四舍五入到小数点后两位。这样比较精确。

#8


decimal(18,2)

#9


有 money 类型

#10


decimal

#11


decimal(18,2)

#12


我用的是sql2005,用的是money

#13


--支持使用
decimal(18,2)

#14


我的是float,我觉得它足够了

#15


引用 5 楼 zjwjmmx 的回复:
decimal和numeric有没有却别? 一般价格要小数点后几位呢?

http://msdn.microsoft.com/zh-cn/library/ms187746.aspx

#16


引用 13 楼 maco_wang 的回复:
SQL code
--支持使用
decimal(18,2)

同意

#17


个人感觉最好不要用decimal因为decimal性能不高,原因如下clr没有将decimal看成一个基元类型也就是意味着clr没有直接操作decimal值的指令

#18


decimal(19,4)