PostgreSQLでデータ型を明示的に変換するCASTと::記法の使い方

PostgreSQL

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専用であるため、用途や可読性、移植性に応じて使い分けると効率的です。

コメント

タイトルとURLをコピーしました