暗黙の型変換とは、目的に合わせた型を明示的に指定しなくても、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  | ○  | ×  | ×  | |
ビット列データ型  | BIT  | ○  | ×  | ○  | 
BIT VARYING  | ○  | ×  | ○  | |
テキスト検索に関する型  | TSVECTOR  | ○  | ×  | ×  | 
TSQUERY  | ○  | ×  | ×  | |
UUID型  | UUID  | ○  | ×  | ×  | 
XML型  | XML  | ○  | ×  | ×  | 
JSON型  | JSON  | ○  | ×  | ×  | 
○:型変換可能
×:型変換不可能
注1) 変換先のデータ型へ型変換可能な形の文字列のみ指定可能(たとえば、変換先が数値型ならば’1’など)
注2) 数定数の表記については、最初に変換される特定の数値型を○で表しています
注3) INTEGER型で表現できる整数を指定可能
注4) INTEGER型で表現できず、BIGINT型で表現できる整数を指定可能
注5) INTEGER型およびBIGINT型で表現できず、NUMERIC型で表現できる整数、もしくは小数点または指数記号(e)を含んだ数定数を指定可能
暗黙の型変換は、データの比較および格納などにおいて利用可能です。
目的によって変換規則が異なりますので、目的ごとに説明します。