cih*_*a87 42 t-sql sql-server formatting
我在选择列中格式化数字时遇到问题.我使用了FORMAT但它不起作用.这是我的专栏:
sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60) TotalSentMinutes
Run Code Online (Sandbox Code Playgroud)
我用过这个:
FORMAT(sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60),2) TotalSentMinutes
Run Code Online (Sandbox Code Playgroud)
错误:
'format'不是公认的内置函数名称.
如何格式化此计算?
Dev*_*art 101
试试这个 -
DECLARE @i FLOAT = 6.677756
SELECT
ROUND(@i, 2)
, FORMAT(@i, 'N2')
, CAST(@i AS DECIMAL(18,2))
, SUBSTRING(PARSENAME(CAST(@i AS VARCHAR(10)), 1), PATINDEX('%.%', CAST(@i AS VARCHAR(10))) - 1, 2)
, FLOOR((@i - FLOOR(@i)) * 100)
Run Code Online (Sandbox Code Playgroud)
输出:
----------------------
6,68
6.68
6.68
67
67
Run Code Online (Sandbox Code Playgroud)
Adr*_*der 12
您可以将其强制转换为DECIMAL并将比例指定为2位数
所以,像
DECLARE @i AS FLOAT = 2
SELECT @i / 3
SELECT CAST(@i / 3 AS DECIMAL(18,2))
Run Code Online (Sandbox Code Playgroud)
但是我建议在UI/Report层中完成,因为这会降低精度.
格式化(在我看来)应该在UI /报告/显示级别上进行.
尝试将结果转换为数字
CAST(sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60)
AS numeric(10,2)) TotalSentMinutes
Run Code Online (Sandbox Code Playgroud)
输入
1
2
3
输出
1.00
2.00
3.00
| 归档时间: |
|
| 查看次数: |
243225 次 |
| 最近记录: |