圆满结束缩短T-SQL中的金额

时间:2015-10-15 14:44:56

标签: tsql

我的存储过程通过四舍五入来返回我需要缩短的一些金额(金钱)。 金额将以百万美元计仅数十亿。

例如,

$34,866,676.67 will be $35M
$34,366,676.67 will be $34M
$634,666,676.67 will be $635M
$7,634,666,676.67 will be $8B
$67,334,666,676.67 will be $67B

我怎样才能做到这一点?我正在使用SQL Server 2014。

1 个答案:

答案 0 :(得分:0)

没关系,我只是想出来了。 如果有兴趣,请查看此代码:

DECLARE @m MONEY; SET @m = 7362095.45
DECLARE @l TINYINT, @digit TINYINT;

SET @l = LEN(CAST(@m AS BIGINT))
SET @digit = IIF((@l % 3)=0, 3, (@l % 3));

SELECT '$' + LEFT(CAST(ROUND(@m, ((@l - @digit) * -1)) AS VARCHAR(16)), @digit) + IIF(@l > 9, 'B', 'M') /* Amount will be either in M or B */