暗黙の型変換とは、目的に合わせた型を明示的に指定しなくても、Fujitsu Enterprise Postgresにより自動的に行われる型変換です。
型変換可能な組合せは、変換元の値式が定数と定数でない場合で異なります。
定数でない場合は同じデータ型種類の範囲のみで型変換が可能となります。
定数の場合、文字列定数は変換先のデータ型に合わせた型変換が可能です。数定数は、内部的に特定の数値型に変換されます。そして内部的に変換された数定数が変換先のデータ型に合わせて数値型の範囲で型変換が可能となります。ビット文字列定数はビット列データ型のみ指定可能です。以下に定数の型変換の範囲を記載します。
| 変換先 | 変換元 | |||
|---|---|---|---|---|
| 文字列定数(注1) | 数定数(注2) | ビット文字列定数 | ||
| 数値型 | SMALLINT | ○ | × | × | 
| INTEGER | ○ | ○(注3) | × | |
| BIGINT | ○ | ○(注4) | × | |
| DECIMAL | ○ | ○(注5) | × | |
| NUMERIC | ○ | ○(注5) | × | |
| REAL | ○ | × | × | |
| DOUBLE PRECISION | ○ | × | × | |
| SMALLSERIAL | ○ | × | × | |
| SERIAL | ○ | ○(注3) | × | |
| BIGSERIAL | ○ | ○(注4) | × | |
| 通貨型 | MONEY | ○ | × | × | 
| 文字列型 | CHAR | ○ | × | × | 
| VARCHAR | ○ | × | × | |
| NCHAR | ○ | × | × | |
| NCHAR VARYING | ○ | × | × | |
| TEXT | ○ | × | × | |
| バイナリ列型 | BYTEA | ○ | × | × | 
| 日付/時刻型 | TIMESTAMP WITHOUT TIME ZONE | ○ | × | × | 
| TIMESTAMP WITH TIME ZONE | ○ | × | × | |
| DATE | ○ | × | × | |
| TIME WITHOUT TIME ZONE | ○ | × | × | |
| TIME WITH TIME ZONE | ○ | × | × | |
| INTERVAL | ○ | × | × | |
| 論理値型 | BOOLEAN | ○ | × | × | 
| 幾何データ型 | POINT | ○ | × | × | 
| LSEG | ○ | × | × | |
| BOX | ○ | × | × | |
| PATH | ○ | × | × | |
| POLYGON | ○ | × | × | |
| CIRCLE | ○ | × | × | |
| ネットワークアドレス型 | CIDR | ○ | × | × | 
| INET | ○ | × | × | |
| MACADDR | ○ | × | × | |
| MACADDR8 | ○ | × | × | |
| ビット列データ型 | BIT | ○ | × | ○ | 
| BIT VARYING | ○ | × | ○ | |
| テキスト検索に関する型 | TSVECTOR | ○ | × | × | 
| TSQUERY | ○ | × | × | |
| UUID型 | UUID | ○ | × | × | 
| XML型 | XML | ○ | × | × | 
| JSON型 | JSON | ○ | × | × | 
○:型変換可能
×:型変換不可能
注1) 変換先のデータ型へ型変換可能な形の文字列のみ指定可能(たとえば、変換先が数値型ならば’1’など)
注2) 数定数の表記については、最初に変換される特定の数値型を○で表しています
注3) INTEGER型で表現できる整数を指定可能
注4) INTEGER型で表現できず、BIGINT型で表現できる整数を指定可能
注5) INTEGER型およびBIGINT型で表現できず、NUMERIC型で表現できる整数、もしくは小数点または指数記号(e)を含んだ数定数を指定可能
暗黙の型変換は、データの比較および格納などにおいて利用可能です。
目的によって変換規則が異なりますので、目的ごとに説明します。