TSQL十进制到文本

时间:2017-09-27 10:44:13

标签: sql-server tsql

我有以下字段叫做 - 金额。它是小数(18,2)。

所以值为70.26

我想为文件输出创建的内容类似于 -

00000007026

如果它是一个varchar(11),前导零组成11个字符,如果上面的例子中只有4个,但我也想删除小数

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

SELECT RIGHT('00000000000' + REPLACE(CAST(Amount AS VARCHAR(11)),'.',''),11)

说明

CAST将数字转换为字符串,以便进一步操作。

REPLACE删除小数点。

我添加了11个零,无论这里的数字是多少。但是只从RIGHT中取出11个字符,就会得到你想要的东西。

这不适用于负数,因为零会在-符号的左侧添加。

答案 1 :(得分:1)

declare @str varchar(11)

set @str='00000000000'

declare @p decimal(18,2)

set @p=70.80


select RIGHT(@str+replace(cast(@p as varchar),'.',''), 11  )