回答:
CONVERT
SQL Server固有、CAST
ANSIです。
CONVERT
は日付などをフォーマットできるという点でより柔軟です。それ以外は、ほとんど同じです。拡張機能を気にしない場合は、を使用してくださいCAST
。
編集:
以下のコメントの@beruicと@CFで示されているように、暗黙の変換(CASTもCONVERTも使用しない変換)を使用すると、精度が失われる可能性があります。詳細については、CASTおよびCONVERTを参照してください。特に、このグラフィック:SQL Serverデータ型変換チャートを参照してください。この追加情報があっても、元のアドバイスは変わりません。可能な場合はCASTを使用してください。
Convertには、日付から文字列への変換用のスタイルパラメータがあります。
CASTは標準SQLですが、CONVERTは方言T-SQL専用です。日時の場合、変換には小さな利点があります。
CASTでは、式とターゲットタイプを指定します。CONVERTには、変換のスタイルを表す3番目の引数があります。これは、文字列と日付時刻値の間など、一部の変換でサポートされています。たとえば、CONVERT(DATE、 '1/2/2012'、101)は、米国標準を表すスタイル101を使用して、リテラル文字列をDATEに変換します。
だれもまだ気付いていないように見えるのは、読みやすさです。持っている…
CONVERT(SomeType,
SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
)
…より理解しやすいかもしれません…
CAST(SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
AS SomeType
)
CAST(Column1 AS int)
よりCONVERT(int, Column1)
も読む方が論理的です