Postgresqlにおけるデータ型のキャスト
データ変換はすべてのプログラミングパラダイムで共通で、特にデータベースでトランザクションを処理するときによく発生します。 他のデータベースと同様に、postgresqlデータベースは、あるデータ型を別のデータ型に変換することができるCAST操作を提供します。 postgresql には、文字列から整数への変換、ブール値への変換、文字列から日付への変換、またその逆の変換など、さまざまなキャスト操作が存在します。 この記事では、postgresql の CAST 演算子の機能を例を用いて説明します。 この演算子を使用する場合、以下の構文が使用されます。
1
|
CAST (expression AS target_type );
|
ここで式には定数とテーブル列、特定の値として評価される式が使用されます。 postgresqlにおけるキャスティングのもう1つのバージョンでは、::
演算子が使用されます。 この場合の構文は以下の通りです。
1
|
Expression :: type
|
ではCAST演算子を使ったいくつかの例を見ていきましょう。
文字列から整数へのキャスト
文字列を整数に変換する場合、次の式を使います
1
2 |
この図は、文字列型 “500” を整数型 500 にキャストしています。 覚えておくべき重要なことの1つは、変換先のデータ型が式と互換性がある場合に変換が成功することです。
PostgresのBooleanへのキャスト
式をBooleanにキャストすることで、論理データ型に変換することができます。 以下は、CAST()関数を使用して文字列、char、integer式をBooleanデータ型にキャストする例です。
1
2 3 4 5 6 7 |
SELECT
CAST(‘1’ as BOOLEAN), CAST(‘0’ as BOOLEAN).CAST(‘2’ as BOOLEAN).CAST(‘1’ as BOOLEAN).SELECT(CAST(‘1’ as BOOLEAN))。 CAST(‘true’ AS BOOLEAN), CAST(‘false’ as BOOLEAN), CAST(‘T’ as BOOLEAN), CAST(‘F’ as BOOLEAN); |
Postgresql cast timestamp to date
CAST … を使用して特定のタイムスタンプから実際の日付が取得されます。演算子を使用し、タイムスタンプを入力として、::date サフィックスを追加します。
構文は次のとおりです。
1
|
SELECT 式 ::TIMESTAMP::DATE;
|
‘2019-07-13 1:20′50 から ‘2019-07-13’ まで抽出したい場合を例にとってみましょう。 私たちの Cast クエリーは、次のとおりとなります。
1
|
SELECT ‘2019-07-13 1:20:50’::TIMESTAMP::DATE;
|
ポストgresqlは倍精度から数値にキャストすることが可能です。
倍精度式はfloatデータ型と比較して、より多くの小数点を取ります。 プロセッサ・メモリの場合、倍精度型は最大64ビットのメモリを占有することができます。 倍精度から変換する場合は、四捨五入するのとよく似ています。 しかし、式から正確な結果を得たい場合には、キャストを使用する。
Syntax : SELECT (Double precision :: numeric);SELECT (33.135941093 :: numeric);
別の方法としては、以下に示すようにキャスト()関数を使用することも可能です。
SELECT CAST (Double precision AS numeric)
1
2 |
SELECT
CAST ( 33.35.135941093 AS numeric) |
Postgresql Cast string to a date
次の例は、SQLコマンドSELECTを使って日付への文字列キャストを行っているところです。
1
2 3 |
select
cast (‘2019-07-14’ as date), cast (’13-july-2019′ as date).SELECT キャストは、日付のように文字列をキャストします。 |
この例では、まず文字列 ‘2019-07-14′ を 2019 年 7 月 14 日に変換し、後半では ’13-JULY-2019’ を 2019 年 7 月 13 日と変換します。
まとめ
いくつかの例とともに、キャスティングのいくつかのテクニックを紹介しました。 これらの例のいずれかが有用であり、学んだことを特定のアプリケーションに適用できることを願っています。
PostgreSQL データベースのセットアップまたは管理について支援が必要な場合は、遠慮なく Object Rocket に連絡して、プロジェクトの詳細について話し合い、支援できるかどうかを判断してください。