我有一个数据库,它有一个值、一个以字节为单位的共享大小和一个共享名。这非常准确,但对我的最终用户没有用。因此,我将值转换为 GB。使用简单的除法效果很好。
假设我的数据库由两列组成。共享名和共享大小。
Sharename | Sharesize
Share 1 |71685107549
Now I run this:
SELECT TOP (1000)
[Sharename]
,[ShareSize]
,(ShareSize / 1e+9) SharesizeGB
FROM [mydb].[dbo].[myshares]
输出是:
ShareSize SharesizeGB
71685107549 71,685107549
现在我需要用“点”替换“,”并将结果四舍五入到点后只有两位数。
仅使用 select 语句是否可行?
对于我的示例,它不需要除以 1024。
查询返回一个浮点数据类型,它是一个没有逗号或点十进制分隔符的二进制结构。渲染应用程序将值转换为字符串格式以供显示,如果经过编程,它可以遵循客户端的区域设置。
尽管您可以更改 T-SQL 以返回如下例所示的格式化字符串,但请注意客户端排序将使用字符串而不是数字规则。请注意,此示例明确指定了文化
en_US
,它使用点小数分隔符来覆盖当前会话语言设置。还添加了该子句ORDER BY
的确定性结果。TOP