db2+mysql+类型转换_db2中各个类型互相转换处理

给数字左侧自动占位补零

digits函数:digits(参数)

digits里的参数必须是整型参数,可以是smallint,int,bigint,decimal,其中smallint占5位,int占10位,bigint占19位。decimal默认为5位,最多为31位可以表示为decimal(31)。也就说digits参数能够容纳的数字最多为31位,通常digits在参数不足10位的时候自动补零补齐到10位,等于10位的时候就返回10位,大于10位而小于19位的时候就自动补零补齐到19位,等于大于19位且小于31位的时候数字原封不动地返回不再自动补零。

-- 0000000003 10位

select digits(3) from dual;

-- 0000000000000000003 19位

select digits(cast(3 as bigint)) from dual;

-- 00003 5位

select digits(cast(3 as smallint)) from dual;

-- 0000000000000000000000000000003 31位

select digits(cast(3 as decimal(31))) from dual;

更常用的 自定义补零位数:digits(数字,截取位数)

-- 结果:03

select right(digits(3),2) from dual;

-- 结果:00000003 8位

select right(digits(3),8) from dual;

-- 通过cast函数将参数转换为适合的delcimal类型

-- 结果:0000000000000000000003 22位

select right(digits(cast(3 as decimal(22))),22) from dual;

查看字符串长度

-- 查看字符串长度 结果:4

values length('1322');

字符串与数字类型相互转换

digits函数返回一个代表数字的字符串。参数必须是一个表达式 ,返回整形,samllint,integer,bigint or decimal.如果参数可能是空的,结果也可能是空的。如果参数是空的 ,结果肯定是空的。

函数的返回值是没有考虑参数的规格代表他的绝对值的固定长度的字符串,返回值不包括符号或者小数字符。 相反 他包括数字,如有必要 前导为零来填充。

3f6ee1729866dfc27d8a4f31e8b13d06.png

-- 结果:3.4512432

values CHAR(3.4512432);

-- 结果:34512432

values digits(3.4512432);

-- 结果:3.14

values char(cast(3.14574 as decimal(8,2)));

f1236d54644d514bc446327cf09ffcec.png

-- 结果:4

values integer(trim('4.12313'));

-- 结果:5

values integer(trim('5'));

-- 结果:4

values cast(char('4.12313') as bigint);

-- 结果:4.12

values cast('4.12313' as decimal(8,2));

-- 结果:4.12313

values cast('4.12313' as double);

-- 结果:4.12

values cast(char(cast('4.12313' as decimal(8,2))) as double );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值