PostgreSQL 类型转换
类似Oracle ,PostgreSQL也有强大的类型转换函数, 下面仅举两个类型转换例子。
--1 例子
postgres=# select 1/4;
?column?
----------
0
(1 row)
在PG里如果想做除法并想保留小数,用上面的方法却行不通,因为"/" 运算结果为取整,并
且会截掉小数部分。
--2 类型转换
postgres=# select round(1::numeric/4::numeric,2);
round
-------
0.25
(1 row)
备注:类型转换后,就能保留小数部分了。
--3 也可以通过 cast 函数进行转换
postgres=# select round( cast ( 1 as numeric )/ cast( 4 as numeric),2);
round
-------
0.25
(1 row)
--4 关于 cast 函数的用法
postgres=# SELECT substr(CAST (1234 AS text), 3,1);
substr
--------
3
(1 row)
--5 附: PostgreSQL 类型转换函数
| Function | Return Type | Description | Example |
|---|---|---|---|
| ) | text | convert time stamp to string | to_char(current_timestamp, 'HH12:MI:SS') |
| to_char ( interval, text ) | text | convert interval to string | to_char(interval '15h2m12s', 'HH24:MI:SS') |
| to_char ( int, text ) | text | convert integer to string | to_char(125, '999') |
| precision | text | convert real/double precision to string | to_char(125.8::real, '999D9') |
| to_char ( numeric, text ) | text | convert numeric to string | to_char(-125.8, '999D99S') |
| to_date (text, text ) | date | convert string to date | to_date('05Dec2000', 'DDMonYYYY') |
| to_number ( text, text ) | numeric | convert string to numeric | to_number('12,454.8-', '99G999D9S') |
| to_timestamp ( text, text ) | timestamp with time zone | convert string to time stamp | to_timestamp('05Dec2000', 'DDMonYYYY') |
| to_timestamp ( double precision ) | timestamp with time zone | convert Unix epoch to time stamp | to_timestamp(1284352323 |
本文详细解析了PostgreSQL中类型转换的实现方式,包括使用基本运算符和cast函数进行数值转换,以及如何利用特殊函数如to_char进行日期、时间等数据格式的转换。文章通过具体实例展示了如何在PostgreSQL环境中灵活运用类型转换功能,以满足不同场景下的数据处理需求。
8万+

被折叠的 条评论
为什么被折叠?



