我有一个像1,3065
这样的数字字段,我需要这样做:000000000000000130
。
我的意思是16个整数和2个小数,没有逗号,在左侧添加0,如果需要,在右侧添加。
有没有办法用查询做到这一点?
答案 0 :(得分:1)
我认为这适用于Sybase:
select right(replicate('0', 16) + cast(cast(field*100 as int) as varchar(255)), 16)
答案 1 :(得分:0)
尝试这种方式:
select REPLICATE('0',16-len(cast(cast((1.3065*100) as int) as varchar(16))))+cast(cast((1.3065*100) as int) as varchar(16))
以上结果选择:
0000000000000130
如果您需要近似值,则应使用FLOOR
或CEILING
功能,如下所示
declare @multiplier int
select @multiplier = 1000
select REPLICATE('0',16-len(cast((floor(1.3065*@multiplier)) as varchar(16))))+cast(floor(1.3065*@multiplier) as varchar(16))
以上结果选择:
0000000000001306
您可以通过更改@multiplier
来更改近似值。例如,如果您需要来自第一个查询的结果,则应将@multiplier
更改为100
。