【问题标题】:Postgresql decimal point using to_char使用 to_char 的 Postgresql 小数点
【发布时间】:2021-05-20 13:34:39
【问题描述】:

我想做一个选择,将小数点添加到整数中,但是当我这样做时,它会显示一堆 # 而不是那些数字。

SELECT to_char(1234, '99.99');

我期望的是值为 12.34 的表格,但我在选择中得到了 ##.##。 但是,如果我这样做了

SELECT to_char(1234, '99,99');

如预期的那样显示为 12,34。问题是,我想要一个小数点而不是逗号。 我正在使用 PostgreSQL 13.2

【问题讨论】:

  • 这毫无意义。 1234 小数点后没有数字。它适用于 12.34。

标签: sql postgresql to-char


【解决方案1】:

您似乎想取最后 2 位数字并假装它们是小数。您不能使用预定义的 .D 格式,因为它们适用于真正的小数。

相反,您可以在双引号之间、最后 2 位数字之前打印点字符(与任何其他字符串一样):

 SELECT to_char(1234, '999"."99');
 to_char
---------
   12.34

PS:顺便说一句,您在第一个查询中得到了屏蔽输出,因为格式上没有足够的数字位置:

 SELECT to_char(1234, '9999.99');
 to_char
----------
  1234.00

【讨论】:

    【解决方案2】:

    欢迎来到 SO。你非常接近:) 你使用的是哪个语言环境?检查此示例以获取 en_US.UTF-8

    SELECT to_char(1234, '999G99');
     to_char 
    ---------
       12.34
    (1 row)
    
    • G: 使用 locale 的组分隔符
    • D: 使用 locale 的小数点

    查看tutorial

    【讨论】:

    • 我试过你的选择,它说“12NBSP34”或只是“12 34”,中间有一个空格。如果您的意思是数字语言环境,那么我使用 Slovak_Slovakia.1250
    • 我明白了,这个我无法预测 :D 但正如我所看到的,JGH 的帖子已经回答了你的问题。干杯:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2018-05-31
    • 2019-11-17
    相关资源
    最近更新 更多