datetime キャストか変換か?
Microsoft SQL Server のデータタイムに対して Cast
と Convert
のどちらを選ぶべきか。
MSDN仕様書]1を見てみました。一見したところ、構文以外の違いはないように思えます:
CAST:の構文。
CAST ( expression AS data_type [ ( length ) ] )
CONVERT:のシンタックス
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
また、CASTはANSI標準であるため、異なるデータベース・プラットフォーム間での移植性が高くなっています。
3
2
convert
にはオプションで
styleというパラメータがある。これは混乱を避けるのに役立つ。 例えば、
cast('20130302' as date)`と書くと、どうなるでしょうか?3月2日か2月3日か?また、日付を文字列にキャストする際に特定の書式が必要な場合は、
convert
を使用する必要があります。あなたが投稿したMSDN仕様書のリンクを注意深く読めば、セクションGの下にあなたの答えが見つかるでしょう:
***次の例は、現在の日付と時刻を表示し、CASTを使用して現在の日付と時刻を文字データ型に変更し、CONVERTを使用してISO 8901形式で日付と時刻を表示します。
これが結果セットです。
(1 row(s) affected)
違いがはっきりわかります。
更新
**http://blog.sqlauthority.com/2012/11/21/sql-server-display-datetime-in-specific-format-sql-in-sixty-seconds-033-video/