mssql sqlserver 存储金钱使用数据类型简介


摘要:
今天参加面试,面试官问了一个问题,你们存储金钱使用的什么数据类型啊?
我脑门突然一翁,我们存储金钱根据不同的业务场景用多好几种类型,下文将依次列举讲述,如下所示:
实验环境:sql server 2008 R2


当遇到面试官的这个问题时,我第一反应,可以使用int, short float long double char varchar nvarchar decimal 这些数据类型。
当然这些数据类型我们可以在不同的业务场景中应用,
例:

int:
存储整型
short:
数值必须小的整型
long:
用于存储长整型
float double:
浮点型,会存在精度损失,不建议使用
varchar、char、nvarchar:
可用于存储后期不涉及计算的数值类型
decimal:
涉及精度范围,可用于存储金额相关的信息



存储金额相关数值,通常在数据库中使用decimal类型:
decimal(M,D)
M–数值的最大精度
D–数值后小数位的精度
—-例:——–

//定义一个小数位总长度为10位的数值
//小数点前最大位数为7位,小数点后为3位
declare @maomao decimal(10,3)
set @maomao =18.230