PostgreSQLでは、データ型を明示的に変換する必要がある場面がよくあります。文字列を数値に変換したり、数値を文字列として扱ったりする場合、CAST構文や::記法を使うことで簡単に型変換が可能です。この記事では、両者の使い方と違いを解説します。
CAST構文の基本
CAST構文はSQL標準に準拠した方法で、特定の値を任意の型に変換します。基本の書き方は以下の通りです。
SELECT CAST(‘123’ AS integer);
この例では文字列’123’を整数型に変換し、数値として計算に使用できるようになります。
::記法の基本
::記法はPostgreSQL独自の簡略表記で、値の後に::型名を付けることで型変換を行います。書き方は次の通りです。
SELECT ‘123’::integer;
CAST構文と同様に、文字列’123’を整数に変換します。記述が短く済むため、PostgreSQLで広く使われています。
使用例と注意点
数値の計算に使用する場合、文字列を整数に変換して計算することが可能です。
SELECT ’10’::integer + ’20’::integer; — 結果は30
また、日付型やタイムスタンプ型への変換も可能です。
SELECT CAST(‘2026-04-01’ AS date);
SELECT ‘2026-04-01’::date;
CASTと::記法の違い
CAST構文はSQL標準であり、可読性が高く、異なるDB間で移植しやすいのが特徴です。一方、::記法はPostgreSQL独自ですが、簡潔で短く書けるため、PostgreSQL専用のSQLでは便利です。
どちらを使うかはチームのコーディング規約や可読性、移植性を考慮して選ぶと良いでしょう。
まとめ
PostgreSQLでは、CAST構文と::記法を使用して明示的にデータ型を変換できます。文字列と数値、日付型などの変換に応用可能で、計算や比較処理を正しく行う際に役立ちます。
CASTはSQL標準、::記法はPostgreSQL専用であるため、用途や可読性、移植性に応じて使い分けると効率的です。


コメント