02時49分24秒もう1ヶ月も前の話題じゃんきっかけは、ここのあわせて読みたいでトップにきていたsshi.Continualさんの8/24の記事。リンク先のITproの記事によると、年齢を計算するのに(今日の日付-誕生日)/10000の小数点以下切捨て。なんとなくわかるような、ちょっと不思議なような。記事を見てもらえばわかると思うが、この日本語による定義じゃ不十分で、日付部分の年・月・日を「YYYYMMDD」にしたものを整数として計算するというもの。sshiさんの記事では「これ、簡単かぁ?」という感じでコメント欄が盛り上がっていたりしたのが約1月前。それをいまさら取り上げてみたり。何を思ったかというとPHPやJavaScriptでこの手法を用いるのが適切かの議論はおいておいて、これSQLで使えるんちゃうかと。顧客データなどの個人をあらわすデータでは、DB側に生年月日を入れておくけど、表示した際に年齢表示が必要な場合に、日付フォーマットが使用できるDBMSならこの式をそのまま使えるんちゃうかと。これは結構便利ではないかと。ageFROMcustomerとか。Oraは未確認だけど。あとSQLiteはロケール考慮しないので日付変わってから朝の9時までは1日ずれるけど。ここまで書いてみて、案外記述が冗長なので、あんまり便利じゃない気がしてきたが、CASE文とか使わないし演算に使用する日付に対して何倍するだの何分の一にするだのって余計な数字が入り込まないので、「((YYYYMMDD)-(YYYYMMDD)/10000)の整数部分が年齢だ」ってどっかにコメントしておけば、まあ理解はしやすいのかな。);}くらいが見やすいかな。暗黙の型変換で文字列のまま演算できるし。birthday.replace~くらいにできるか。Dateオブジェクト拡張しちまいそうだ。蛇足この記事書きながら、「この計算式、どっかで見たよなー」と思ってたら、あるSEのつぶやきさんの8/23付けのエントリでした。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。