使用 to_char 的 Postgresql 小数点

Posted

技术标签:

【中文标题】使用 to_char 的 Postgresql 小数点【英文标题】:Postgresql decimal point using to_char 【发布时间】: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。 【参考方案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 的帖子已经回答了你的问题。干杯:)

以上是关于使用 to_char 的 Postgresql 小数点的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL TO_CHAR() 删除月份字段的填充

postgresql to_char 德语格式的整数

PostgreSQL - 从双精度字段中获取所有整数数字以用于 to_char 函数

Postgresql/Greenplum中将数字转换为字符串TO_CHAR函数前面会多出一个空格

PostgreSQL中有以下格式化函数:

Postgresql to_char 将字符添加到日期