类似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 类型转换函数
FunctionReturn TypeDescriptionExample
to_char(timestamp, text
)
textconvert time stamp to stringto_char(current_timestamp, 'HH12:MI:SS')to_char(interval, text)textconvert interval to stringto_char(interval '15h 2m 12s', 'HH24:MI:SS')to_char(int, text)textconvert integer to stringto_char(125, '999')to_char(double
precision, text)
textconvert real/double precision to stringto_char(125.8::real, '999D9')to_char(numeric, text)textconvert numeric to stringto_char(-125.8, '999D99S')to_date(text, text)dateconvert string to dateto_date('05 Dec 2000', 'DD Mon YYYY')to_number(text, text)numericconvert string to numericto_number('12,454.8-', '99G999D9S')to_timestamp(text, text)timestamp with time zoneconvert string to time stampto_timestamp('05 Dec 2000', 'DD Mon YYYY')to_timestamp(double precision)timestamp with time zoneconvert Unix epoch to time stampto_timestamp(1284352323) 1varcharjava.lang.String12 2bpcharjava.lang.String1 3cidrjava.lang.Object1,111 4inetjava.lang.Object1,111 5macaddrjava.lang.Object1,111 6textjava.lang.String12 7int8java.lang.Long-5 8int8java.lang.Long-5 9boxjava.lang.Object1,111 10circlejava.lang.Object1,111 11float8java.lang.Double8 12int4java.lang.Integer4 13intervaljava.lang.Object1,111 14linejava.lang.Object1,111 15lsegjava.lang.Object1,111 16moneyjava.lang.Double8 17numericjava.math.BigDecimal2 18pathjava.lang.Object1,111 19pointjava.lang.Object1,111 20polygonjava.lang.Object1,111 21float4java.lang.Float7 22int2java.lang.Integer5 23int4java.lang.Integer4 24timejava.sql.Time92 25timestampjava.sql.Timestamp93 26bitjava.lang.Boolean-7 27varbitjava.lang.Object1,111 28booljava.lang.Boolean-7 29bytea[B-2转载于:https://www.cnblogs.com/logsharing/p/8260129.html
相关资源:PostgreSQL教程(四):数据类型详解