SQLServerでの年齢計算方法を教えてください。 元となるテーブルに生年月日の項目が文字列であります。(19880101など) これを、SQLにて年齢を計算して表示したいです。 どのように記述しすればいいのか教えてください。

SQL Server7,494閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

このベストアンサーは投票で選ばれました

0

その他の回答(2件)

0

なぜそうなるのかは疑問に思われると思いますが、 select floor((cast(convert(varchar,getdate(),112) as int)-cast([生年月日] as int))/10000); というやり方もあります。 【補足】 「年齢計算に関する法律」 http://www.excite.co.jp/News/bit/00091172184700.html?_p=all 誕生日の前日の午後12時に一歳年をとることになっています。 本当にこれが「誕生日当日の0時に歳を取る」のとどんな違いがあるのかわかりにくいのですが、建前上はそうなっているということで。 (少年法・刑法とか微妙な件もあるでしょうね)

0

select yyyy-cast(left(生年月日,4) as int)- case when mmdd < right(生年月日,4) then 1 else 0 end from tbl,(select cast(right(mm_dd_yyyy,4) as int)as yyyy ,left(mm_dd_yyyy,2)+substring(mm_dd_yyyy,4,2) as mmdd from (select cast(getdate() as char(10))as mm_dd_yyyy)t1) t2 でどうでしょうか。