使用 to_char 的 Postgresql 小数点

问题描述

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

SELECT to_char(1234,'99.99');

我期望的是值为 12.34 的表,但我的选择中有 ##.##。 但是,如果我这样做

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

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

解决方法

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

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

检查这个tutorial

,

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

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

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...