转换函数
TO_CHAR
目的
TO_CHAR(str,[fmt]) 根据给定的格式将输入参数转换为 TEXT 数据类型的值。 如果省略 fmt,则数据将转换为系统默认格式的 TEXT 值。 如果 str 为 null,则该函数返回 null。
参数
str
输入参数 (任意类型)。
fmt
输入格式参数,详见格式fmt。
示例
select to_char(interval '3 2:20:05' );
to_char
-----------------
3 days 02:20:05
(1 row)
select to_char('4.00'::numeric);
to_char
---------
4
(1 row)
select to_char(NULL);
to_char
---------
(1 row)
select to_char(123,'xx');
to_char
---------
7b
(1 row)
TO_NUMBER
目的
TO_NUMBER(str,[fmt1]) 根据给定的格式将输入参数 str 转换为 NUMREIC 数据类型的值。 如果省略 fmt1,则数据将转换为系统默认格式的 NUMERIC 值。 如果 str 是 NUMERIC,则该函数返回 str。如果 str 计算结果为 null,则该函数返回 null。 如果它不能转换为 NUMERIC 数据类型,则该函数返回错误。
参数
str
输入参数包括以下数据类型(double precision,numeric,text,integer等,但必须隐式转换为numeric)。
fmt1
输入格式参数,详见格式fmt1。
示例
select to_number('19f','xxx');
to_number
-----------
415
(1 row)
select to_number(1210.73::numeric, 9999.99::numeric);
to_number
-----------
1210.73
(1 row)
select to_number(NULL);
to_number
-----------
(1 row)
select to_number('123'::text);
to_number
-----------
123
(1 row)
HEX_TO_DECIMAL
目的
HEX_TO_DECIMAL(str) 十六进制转十进制,如果转换的值超出返回类型bigint的范围,函数返回错误。
参数
str
输入参数(十六进制)。
示例
select hex_to_decimal('ffff');
hex_to_decimal
----------------
65535
(1 row)
select hex_to_decimal('0x7fffffffffffffff');
hex_to_decimal
---------------------
9223372036854775807
(1 row)
TO_BINARY_DOUBLE
目的
TO_BINARY_DOUBLE(str) 将输入参数 str 转换为双精度浮点数的值。 如果 str 的计算结果为 null,则该函数返回 null。 如果不能转换为双精度浮点数据类型或超出双精度浮点数的范围,则函数返回错误。
参数
str
输入参数(任意类型,但需要隐式转换为双精度浮点数类型)。
示例
select to_binary_double('1.2');
to_binary_double
------------------
1.2
(1 row)
select to_binary_double('1.2'::text);
to_binary_double
------------------
1.2
(1 row)
select to_binary_double(1.2::numeric);
to_binary_double
------------------
1.2
(1 row)
select to_binary_double(123456789123456789.45566::numeric);
to_binary_double
------------------------
1.2345678912345678e+17
(1 row)
select to_binary_double(NULL);
to_binary_double
------------------
(1 row)
TO_BINRAY_FLOAT
目的
TO_BINARY_FLOAT(str) 将输入参数 str 转换为单精度浮点数。 如果str计算结果为null,则函数返回null。 如果无法转换为单精度浮点数据类型或超出单精度浮点数的范围,则函数返回错误。
参数
str
输入参数(任意类型,但需要隐式转换为单精度浮点数类型)。
示例
select to_binary_float(2.5555::float8);
to_binary_float
-----------------
2.5555
(1 row)
select to_binary_float('123'::text);
to_binary_float
-----------------
123
(1 row)
select to_binary_float(1.2::numeric);
to_binary_float
-----------------
1.2
(1 row)
select to_binary_float(NULL);
to_binary_float
-----------------
(1 row)
BIN_TO_NUM
目的
BIN_TO_NUM(str) 将二进制数转换为十进制数。 如果 str 不能计算为二进制数,则函数返回错误。
参数
str
输入参数(任意类型,但必须可转换或计算为二进制数类型)。
示例
select bin_to_num('1.3'::text, '1.2'::name);
bin_to_num
------------
3
(1 row)
select bin_to_num(1.2::float8, 1::int4);
bin_to_num
------------
3
(1 row)
select bin_to_num(NULL);
bin_to_num
------------
(1 row)
select bin_to_num(NULL, NULL, NULL);
bin_to_num
------------
(1 row)
TO_MULTI_BYTE
目的
TO_MULTI_BYTE(str) 将输入参数 str 中的单字节字符转换为相应的多字节字符。 如果 str 无法转换为文本类型,则函数返回错误。
参数
str
输入参数(text,或可隐式转换为文本类型)。
示例
select to_multi_byte('abc'::text);
to_multi_byte
---------------
abc
(1 row)
select to_multi_byte(NULL);
to_multi_byte
---------------
(1 row)
TO_SINGLE_BYTE
目的
TO_SINGLE_BYTE(str) 将输入参数 str 中的多字节字符转换为相应的单字节字符。 如果 str 无法转换为文本类型,则函数返回错误。
参数
str
输入参数(text,或可隐式转换为文本类型)。
示例
select to_single_byte('abc');
to_single_byte
----------------
abc
(1 row)
select to_single_byte('1.2');
to_single_byte
----------------
1.2
(1 row)
TO_DATE
目的
TO_DATE(str,[fmt]) 根据给定的格式将输入参数 str 转换为日期数据类型的值。 如果省略 fmt,则数据将转换为系统默认格式的日期值。 如果 str 为 null,则该函数返回 null。 如果 fmt 是 J,对于 Julian,则 char 必须是整数。 如果无法转换为 DATE,则该函数返回错误。