HOME >> Tips >> Microsoft SQL Server

CONVERT や CAST 関数で VARCHAR,CHARの長さを指定しなかった場合の規定値

2016/1/5
文書番号:20445

CONVERT 関数や CAST 関数で 文字列型(varchar、nverchar、charなど)を指定してデータ型を変換する際、 通常はデータ型の後ろに長さを指定します。

CONVERT(varchar(50),文字列)

CAST(文字列 as varchar(50))


この長さはオプションなので指定しなくてもエラーにはなりません。
指定しなかった場合は30バイト になります。

30バイト以内の文字列を CONVERT する場合は問題ありませんが、30バイトを超える文字列を CONVERT する場合は データの長さを指定しないと30バイトで切り落とされてしまいますので注意が必要です。




実行例です。

SELECT CONVERT(varchar,'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')

SELECT CONVERT(varchar,'あいうえおかきくけこさしすせそたちつてと')

SELECT CAST('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' AS char)

SELECT CAST('あいうえおかきくけこさしすせそたちつてと' AS varchar)

クリックで拡大