CAST関数 / CONVERT関数 (指定した値を別のデータ型または別の文字セットに変換する)

広告
eyecatch

CAST 関数または CONVERT 関数を使うと引数に指定した値を別のデータ型に変換することができます。また別の文字セットに変換することもできます。ここでは CAST 関数および CONVERT 関数の使い方について解説します。

CAST関数およびCONVERT関数の使い方

CAST 関数は引数に指定した値を別のデータ型に変換するために使用します。書式は次の通りです。

CAST(expr AS type)

同じように CONVERT 関数は引数に指定した値を別のデータ型に変換するために使用します。書式は次の通りです。

CONVERT(expr,type)

CAST 関数及び CONVERT 関数で type に指定できるデータ型は次のいずれかである必要があります。

BINARY[(N)]
CHAR[(N)] [charset_info]
DATE
DATETIME
DECIMAL[(M[,D])]
JSON
NCHAR[(N)]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]

また CONVERT 関数は引数に指定した値の文字セットを別の文字セットに変換する用途でも利用できます。書式は次の通りです。

CONVERT(expr USING transcoding_name)

-- --

それでは実際に試してみます。次のように実行してください。

select cast(now() as signed);

MySQL/CAST 関数の使い方(1)

同じことを今度は CONVERT 関数を使って行ってみます。

select convert(now(), signed);

MySQL/CONVERT 関数の使い方(1)

-- --

次に CONVERT 関数を使って文字列の文字セットを変更してみます。最初に文字セットを指定して文字列をユーザー変数 @s1 に設定します。 CHARSET 関数を使って文字セットを確認すると latin1 となっています。

set @s1 = _latin1 'abc';
select charset(@s1);

MySQL/CONVERT 関数の使い方(2)

次に CONVERT 関数を使いユーザー変数 @s1 に入っている文字列の文字セットを UTF-8 に変更し、ユーザー変数 @s2 に設定します。

set @s2 = convert(@s1 using utf8);

MySQL/CONVERT 関数の使い方(3)

では CHARSET 関数を使って @s2 の文字セットを確認すると utf8 となっています。

select charset(@s2);

MySQL/CONVERT 関数の使い方(4)

このように CONVERT 関数を使って文字セットを変更することができました。

※ 先ほどのサンプルで使用した CHARSET 関数に関して詳しくは「CHARSET関数 / COLLATION関数 (文字列の文字セットと照合順序を取得する)」を参照されてください。

-- --

cast 関数および convert 関数の使い方について解説しました。

MySQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。