• ベストアンサー

生年月日から年代を検索

いつもお世話になっております。 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

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

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でかいときました。

wonder_dct
質問者

お礼

> yambejp さん ご回答ありがとございます。 > 今日が2007/12/28だとすると1986/12/29~1996/12/28生まれということですか? はい。そのように考えております。 提示していただいた、クエリでうまくいきました。 ありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1です。 今日は2006/12/28でした。 タイプミスです。混乱のないよう念のため。

関連するQ&A