年代計算するのってそういえばやったことないかも
とちょろちょろと考えてみた結果が下記のSQLです。
select trunc(date_part('year', age(birth))/ 10)*10 as aetas from table_name;
birth は 生年月日のデータです。型はtimestampのほうがいいと思います。
簡単に処理の流れをメモ
1.age:年齢取得
29 years 9 mons 8 days
↑このような値がかえってきます。
2.date_part:ageの返り値から年齢だけを取得
29
↑このような値が返ってきます。
3.10で割る
2.9
↑まぁこうなります。
4.trunc:切捨て
2
↑こうですね
5.10を掛ける
20
年代とれたー!
10で割って10掛けるって正直どうなのと思うんですが
頭が悪いのだろうなぁ。いい方法がおもいつきませんでした。時間もあまりないので・・。
参考にした記事
http://www.postgresql.jp/document/pg743doc/html/functions-datetime.html
http://chaichan.hp.infoseek.co.jp/qa5500/qa5896.htm
とちょろちょろと考えてみた結果が下記のSQLです。
select trunc(date_part('year', age(birth))/ 10)*10 as aetas from table_name;
birth は 生年月日のデータです。型はtimestampのほうがいいと思います。
簡単に処理の流れをメモ
1.age:年齢取得
29 years 9 mons 8 days
↑このような値がかえってきます。
2.date_part:ageの返り値から年齢だけを取得
29
↑このような値が返ってきます。
3.10で割る
2.9
↑まぁこうなります。
4.trunc:切捨て
2
↑こうですね
5.10を掛ける
20
年代とれたー!
10で割って10掛けるって正直どうなのと思うんですが
頭が悪いのだろうなぁ。いい方法がおもいつきませんでした。時間もあまりないので・・。
参考にした記事
http://www.postgresql.jp/document/pg743doc/html/functions-datetime.html
http://chaichan.hp.infoseek.co.jp/qa5500/qa5896.htm