postgresql-类型转换函数
简介
类型转换函数用于将数据从一种类型转换为另一种类型。
CAST 函数
CAST ( expr AS data_type )函数用于将 expr 转换为 data_type 数据类型;PostgreSQL 类型转
换运算符(::)
也可以实现相同的功能。
sql
select cast('100' as INTEGER) as t1, '2023-09-05'::date as t2;

如果数据无法转换为指定的类型,将会返回错误:
to_date函数
to_date(string, format)函数用于将字符串 string 按照 format 格式转换为日期类型。
YYYY 代表四位数的年;MM 代表两位数的月;DD 代表两位数的日
官网格式
sql
SELECT to_date('2023/09/05','YYYY/MM/DD');

to_timestamp
to_timestamp(string, format)函数用于将字符串 string 按照 format 格式转换为 timestamp WITH time zone 类型。其中,HH24 表示 24 小时制的小时;MI 表示分钟;SS 表示秒数;MS 表示毫秒数。
sql
select to_timestamp('2020-03-15 19:08:00.678', 'yyyy-mm-dd hh24:mi:ss.ms');

to_char
to_char(expre, format)函数用于将 timestamp、interval、integer、double precision 或者 numeric
类型的值转换为指定格式的字符串。其中,格式中的 9 代表数字位;D 代表小数点。关于数字的格式化选项可以参考官方文档
sql
select to_char(current_timestamp, 'HH24:MI:SS'),
to_char(interval '5h 12m 30s', 'HH12:MI:SS'),
to_char(-125.8, '999D99');

to_number
to_number(string, format)函数用于将字符串转换为数字。其中,格式字符串中的 L 表示本地货币符号。
sql
select to_number('¥125.8', 'L999D9');

隐式类型转换
除了显式使用类型转换函数或运算符之外,很多时候 PostgreSQL 会自动执行数据类型的隐
式转换
sql
select 1+'2', 'todo: '||current_timestamp;
