質問: SQLServerでの年齢計算方法を教えてください。 元となるテーブルに生年月日の項目が文字列であります。(19880101など) これを、SQLにて年齢を計算して表示したいです。 どのように記述しすればいいのか教えてください。
回答: なぜそうなるのかは疑問に思われると思いますが、 select floor((cast(convert(varchar,getdate(),112) as int)-cast([生年月日] as int))/10000); というやり方もあります。 【補足】 「年齢計算に関する法律」 誕生日の前日の午後12時に一歳年をとることになっています。 本当にこれが「誕生日当日の0時に歳を取る」のとどんな違いがあるのかわかりにくいのですが、建前上はそうなっているということで。 (少年法・刑法とか微妙な件もあるでしょうね)