我有一个像1,3065
这样的数字字段,我需要它变成这样:000000000000000130
.
我的意思是 16 个整数和 2 位小数,不带逗号,在左侧添加 0es,如果需要,在右侧添加 0。
有什么方法可以通过查询做到这一点吗?
我认为这将在Sybase中工作:
select right(replicate('0', 16) + cast(cast(field*100 as int) as varchar(255)), 16)
试试这个方式:
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
。