postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgres数据库中,我们可以用"::"来进行字段数据的类型转换。实际上"::"是调用CAST函数的。究竟哪些字段之间可以进行数据转换呢?
这个问题只要研究一下cast函数就能够得到答案。cast函数的信息在系统pg_cast表里面管理。
通过查询我们可以得到现阶段可以转换的类型对照表如下:
源类型 转换目标类型
| int8 | int2 |
| int8 | int4 |
| int8 | float4 |
| int8 | float8 |
| int8 | numeric |
| int2 | int8 |
| int2 | int4 |
| int2 | float4 |
| int2 | float8 |
| int2 | numeric |
| int4 | int8 |
| int4 | int2 |
| int4 | float4 |
| int4 | float8 |
| int4 | numeric |
| float4 | int8 |
| float4 | int2 |
| float4 | int4 |
| float4 | float8 |
| float4 | numeric |
| float8 | int8 |
| float8 | int2 |
| float8 | int4 |
| float8 | float4 |
| float8 | numeric |
| numeric | int8 |
| numeric | int2 |
| numeric | int4 |
| numeric | float4 |
| numeric | float8 |
| int4 | bool |
| bool | int4 |
| int8 | oid |
| int2 | oid |
| oid | int8 |
| int8 | regproc |
| int2 | regproc |
| regproc | int8 |
| int8 | regprocedure |
| int2 | regprocedure |
| regprocedure | int8 |
| int8 | regoper |
| int2 | regoper |
| regoper | int8 |
| int8 | regoperator |
| int2 | regoperator |
| regoperator | int8 |
| int8 | regclass |
| int2 | regclass |
| regclass | int8 |
| int8 | regtype |
| int2 | regtype |
| regtype | int8 |
| int8 | regconfig |
| int2 | regconfig |
| regconfig | int8 |
| int8 | regdictionary |
| int2 | regdictionary |
| regdictionary | int8 |
| text | regclass |
| varchar | regclass |
| bpchar | text |
| bpchar | varchar |
| char | text |
| char | bpchar |
| char | varchar |
| name | text |
| name | bpchar |
| name | varchar |
| text | char |
| bpchar | char |
| varchar | char |
| text | name |
| bpchar | name |
| varchar | name |
| char | int4 |
| int4 | char |
| abstime | date |
| abstime | time |
| abstime | timestamp |
| abstime | timestamptz |
| reltime | interval |
| date | timestamp |
| date | timestamptz |
| time | interval |
| time | timetz |
| timestamp | abstime |
| timestamp | date |
| timestamp | time |
| timestamp | timestamptz |
| timestamptz | abstime |
| timestamptz | date |
| timestamptz | time |
| timestamptz | timestamp |
| timestamptz | timetz |
| interval | reltime |
| interval | time |
| timetz | time |
| lseg | point |
| path | point |
| path | polygon |
| box | point |
| box | lseg |
| box | polygon |
| box | circle |
| polygon | point |
| polygon | path |
| polygon | box |
| polygon | circle |
| circle | point |
| circle | box |
| circle | polygon |
| inet | cidr |
| int8 | bit |
| int4 | bit |
| bit | int8 |
| bit | int4 |
| cidr | text |
| inet | text |
| bool | text |
| text | xml |
| cidr | varchar |
| inet | varchar |
| bool | varchar |
| varchar | xml |
| cidr | bpchar |
| inet | bpchar |
| bool | bpchar |
| bpchar | xml |
| bpchar | bpchar |
| varchar | varchar |
| time | time |
| timestamp | timestamp |
| timestamptz | timestamptz |
| interval | interval |
| timetz | timetz |
| bit | bit |
| varbit | varbit |
| numeric | numeric |
原文:http://www.cnblogs.com/kungfupanda/p/4222348.html