使用 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 函数