【问题标题】:SQL format for decimal with comma to indicate decimals, only to digit小数的 SQL 格式,用逗号表示小数,仅用于数字
【发布时间】: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 所需的语言环境。

标签: sql sql-server


【解决方案1】:

您需要向FORMAT() 添加适当的文化参数。许多欧洲国家/地区使用逗号作为小数分隔符,因此可以使用以下方法:

select FORMAT(12345.8, '#.00', 'fr-fr')

【讨论】:

    【解决方案2】:

    如果您使用的是 SQL Server 2012 及更高版本,则可以使用 format 函数, 比如:

     FORMAT (YourColumn, "#,###")
    

    【讨论】:

    • 这仍将使用本地化格式,即., 用于小数。 FORMAT 是合适的,因为它接受所需语言环境的第三个参数
    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 2012-12-14
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多