Sun*_*nil 8 sql sql-server sql-server-2008
我使用以下内容在T-SQL中创建逗号格式的数字.如何摆脱小数点和小数点后的数字.所以如果格式化后得到1,112.00,我怎么才能得到1,112?
SELECT CONVERT(varchar, CAST(1112 AS money), 1)
Run Code Online (Sandbox Code Playgroud)
Mit*_*eat 17
DECLARE @val varchar(50)
set @val = CONVERT(varchar(50), CAST(1112 AS money), 1)
SELECT left(@val, len(@val) - 3)
Run Code Online (Sandbox Code Playgroud)
这也适用于小数点后的数字:
DECLARE @val varchar(50)
set @val = CONVERT(varchar(50), CAST(1112.56 AS money), 1)
SELECT left(@val, len(@val) - 3)
Run Code Online (Sandbox Code Playgroud)
注意:正如@Mahmoud Gamal指出的那样,格式化通常更适合在前端执行.
Mah*_*mal 16
像这样:
SELECT REPLACE(CONVERT(VARCHAR(20), CAST(1112 AS MONEY), 1), '.00', '');
Run Code Online (Sandbox Code Playgroud)
这总是很好.因为CONVERT(VARCHAR(20), CAST(1112 AS MONEY), 1)将始终返回一个数字.00.但是,如果逗号后面有十进制数字,MitchWheat的答案会更好.
请注意:您应该考虑在前端应用程序中执行此格式化操作.T-SQL与格式无关.
小智 15
https://database.guide/how-to-format-numbers-in-sql-server/
从 SQL 2012 开始,您可以编写:
SELECT FORMAT(ColumnName, 'N0');
Run Code Online (Sandbox Code Playgroud)
Gov*_*ind 10
PARSENAME(CONVERT(VARCHAR,CAST(1112 AS MONEY),1),2)
Run Code Online (Sandbox Code Playgroud)
它会很好地工作.
当自动将数字转换为货币数据类型时,将在小数点后添加2个零.PARSENAME函数将删除该零.