小数的 SQL 格式,用逗号表示小数,仅用于数字
Posted
技术标签:
【中文标题】小数的 SQL 格式,用逗号表示小数,仅用于数字【英文标题】:SQL format for decimal with comma to indicate decimals, only to digit 【发布时间】:2018-05-14 07:34:19 【问题描述】:如何将十进制值转换为逗号?
数字不带逗号来分隔 1000,并且有逗号来表示小数,仅表示数字。
例如:1324,35(正确) 而不是 1.324,35(格式不正确)或 1,345.64(格式不正确)
【问题讨论】:
你能提供你目前所拥有的来制作上述内容吗? 例如:1324.3532如何转换成1324,35 这取决于您的本地语言设置。您还可以转换数字以使用逗号,但它将被视为 VARCHAR 而不是数字:REPLACE(CAST(1324.35 AS VARCHAR(20)), '.', ',')
@VladimirKirov 发布您的查询。 SQL Server没有十进制/数字类型的特定格式。它们是 二进制 值。格式仅适用于代码将数字转换为字符串,通过CAST/CONVERT/FORMAT
显式或通过将数字分配给文本字段/变量来隐式
@VladimirKirov 如果您真的想将数字转换为文本,请在 客户端 上执行此操作。在那里格式化文本要容易得多,和确定正确的语言环境。否则使用FORMAT
函数with 所需的语言环境。
【参考方案1】:
您需要向FORMAT()
添加适当的文化参数。许多欧洲国家/地区使用逗号作为小数分隔符,因此可以使用以下方法:
select FORMAT(12345.8, '#.00', 'fr-fr')
【讨论】:
【参考方案2】:如果您使用的是 SQL Server 2012 及更高版本,则可以使用 format 函数, 比如:
FORMAT (YourColumn, "#,###")
【讨论】:
这仍将使用本地化格式,即.
或,
用于小数。 FORMAT
是合适的,因为它接受所需语言环境的第三个参数以上是关于小数的 SQL 格式,用逗号表示小数,仅用于数字的主要内容,如果未能解决你的问题,请参考以下文章
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)