http://10395.diarynote.jp/201110280123249459/
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/cast-and-convert-transact-sql
cast(123 as varchar) -- '123' cast(getdate() as varchar) -- '02 8 2018 10:28AM' convert(varchar,123) -- '123' convert(varchar,getdate(),111) -- '2018/02/08'
基本的に型変換を行うために使うものだが、微妙に機能が異なっている。
(どちらも型変換「Convert.ToInt32(value)」を行うものであり、通常のプログラム言語のキャスト「(int)value」ではない)
convertはマジックナンバーを使ったりする分かりづらさがある。
castはdatetimeを文字列変換したときに書式を指定できないなど機能が少ない。
もともとSQLServer独自仕様として convert のみが存在したが、ANSI SQL に準拠するためにあとから cast が追加されたらしい。