九月 20, 2023
摘要:PostgreSQL 的TO_NUMBER()
函数将字符串转换为数值。
目录
语法
PostgreSQL 的TO_NUMBER()
函数的语法如下:
TO_NUMBER(string, format)
参数
TO_NUMBER()
函数需要两个参数。
1) string
要转换为数字的字符串。其格式必须是文字值。
2) format
格式参数指示应如何解析第一个参数来创建数字。
下表说明了有效格式的列表:
格式 | 描述 |
---|---|
9 | 具有指定位数的数值 |
0 | 带有前导零的数值 |
.(点号) | 小数点 |
D | 区域相关的小数点 |
,(逗号) | 分组(千)分隔符 |
FM | 填充模式,抑制填充空白和前导零。 |
PR | 尖括号中的负值。 |
S | 锚定到区域相关的数字的符号 |
L | 区域相关的货币符号 |
G | 区域相关的分组分隔符 |
MI | 对于小于 0 的数字,在指定位置添加负号。 |
PL | 对于大于 0 的数字,在指定位置添加正号。 |
SG | 指定位置的正号/负号 |
RN | 罗马数字,范围从 1 到 3999 |
TH 或 th | 大写或小写序数后缀 |
请注意,这些格式字符串也适用于TO_CHAR()
函数。
返回值
TO_NUMBER()
函数返回一个数据类型为numeric
的值。
示例
让我们看一下使用TO_NUMBER()
函数的一些示例,以了解它的工作原理。
A) 将字符串转换为数字
以下语句将字符串 ‘12,345.6-’ 转换为数字。
SELECT
TO_NUMBER(
'12,345.6-',
'99G999D9S'
);
输出是:
to_number
-----------
-12345.6
(1 row)
B) 将金额转换为数字
以下示例显示如何将金额转换为数字:
SELECT
TO_NUMBER(
'$1,234,567.89',
'L9G999g999.99'
);
结果如下:
to_number
-----------
1234567.89
(1 row)
C) 格式控制
如果在格式字符串中未指定 .99,TO_NUMBER()
函数将不会解析小数点后的部分。
请参见以下示例:
SELECT
TO_NUMBER(
'1,234,567.89',
'9G999g999'
);
它返回 1234567 而不是 1234567.89,如下所示:
to_number
-----------
1234567
(1 row)
在本教程中,您学习了如何使用 PostgreSQL 的TO_NUMBER()
函数,将字符串转换为数值。
了解更多
PostgreSQL 教程:字符串函数
PostgreSQL 文档:数据类型格式化函数