- ベストアンサー
生年月日から年代を検索
いつもお世話になっております。 MySQLで BirthDay int(8) というカラムを持っています。 (2000年1月1日だったら「20000101」で保持) PHPで10代が選択された場合、生年月日から10代のものを取ってきたい と思っているのですが、どのような方法がありますでしょうか? ご教授お願いいたいます。 <環境> PHP:4.3.2 Apache:2.0.40 (Red Hat Linux) MySQL:3.23.56
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
10代とは・・・ 今日が2007/12/28だとすると1986/12/29~1996/12/28生まれということですか? そうなると20年前の明日~10年前の今日までとなりますので 以下のようなものでいかがでしょうか? SELECT * FROM テーブル WHERE `BirthDay` BETWEEN DATE_FORMAT(CURDATE() + INTERVAL 1 DAY -INTERVAL 20 YEAR,"%Y%m%d") AND DATE_FORMAT(CURDATE() -INTERVAL 10 YEAR,"%Y%m%d") ※PHPでという話でしたがとりあえずMySQLでかいときました。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
#1です。 今日は2006/12/28でした。 タイプミスです。混乱のないよう念のため。
お礼
> yambejp さん ご回答ありがとございます。 > 今日が2007/12/28だとすると1986/12/29~1996/12/28生まれということですか? はい。そのように考えております。 提示していただいた、クエリでうまくいきました。 ありがとうございます。