Think Twice
IT技術メモ | SQL Serverのメモ
Created: 2020-12-20 / Updated: 2021-01-07

SQL Serverの変換系関数(CAST, CONVERT, FORMAT, PARSE)


目次


4つの変換系関数の違い

4つは変換系関数ということで似ているんですが、違いを簡単にまとめると以下のようになります。

なお、CASTCONVERTPARSEには、変換に失敗したらエラーとするのではなく、NULLを返却するTRYバージョンが(それぞれTRY_CASTTRY_CONVERTTRY_CAST)というものが存在します。

CAST

CASTが一番シンプルな形になります。

CASTの構文
Copy
CAST(expression AS data_type [(length)])  
例1 文字列'12.34'をdecimalに変換する
Copy
CAST('12.34' AS decimal(4, 2)) -- 12.34
例2 文字列'12.34'をdecimalに変換する
Copy
CAST('12.34' AS decimal) -- 12
例3 文字列を日付型に変換する
Copy
CAST('2020/12/22' AS date) -- 2020-12-22 (date型)

CONVERT

CONVERT関数は、任意の値を指定した型に変換する関数です。
CAST関数との違いとしては、styleを指定して、型と同時に値の表現も変換できることろです。

CONVERTの構文
Copy
CONVERT(data_type [(length)], expression [, style])

日付と時刻のスタイル (Date and Time styles)

文字列型から日付型や時刻型に変換したり、その逆に日付型や時刻型から文字列型に変換したりします。
文字列型に変換する場合は、上記のリンク先の表の Input/Output に示した形式で出力されます。

表はまた後で書きます。

floatとrealのスタイル(float and real styles)

また後で書きます。

moneyとsmallmoneyのスタイル(money and smallmoney styles)

また後で書きます。

XMLスタイル(xml styles)

また後で書きます。

バイナリスタイル(Binary styles)

また後で書きます。

FORMAT

FORMATは…また後で書きます。

PARSE

他の3つに比べるとちょっと知名度が落ちるんじゃないかと思いますが、知っていると便利です。

また後で書きます。

変換表


参考

参照