• 締切済み

Mysql 誕生日順に並べたい

社員の生年月日から、今日から、1ヶ月間の誕生日対象者を、誕生日順に出力したいです。 SELECT memname, REPLACE(membirth, "-", "/") as mbirth, REPLACE(RIGHT(membirth, 5), "-", "") as cdate, DATE_FORMAT(membirth, "%c月%e日") as birday FROM MEMDB ORDER BY cdate membirthは、生年月日(例1989-01-01) cdate順にsortしたら、12月の人より、1月の人が先に出ます。 12月の人の次に1月の人が出るようにしたいですが。。。 あと、 検索条件も WHERE RIGHT(CURDATE(),5)=RIGHT(mbirth,5) OR RIGHT(DATE_ADD(CURDATE(), INTERVAL 1 DAY),5)=RIGHT(mbirth,5) OR RIGHT(DATE_ADD(CURDATE(), INTERVAL 2 DAY),5)=RIGHT(mbirth,5) OR ... みたいに、INTERVAL 30 DAYまででチェックしてますが、 正しい方法があれば、お教えてください。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

> cdate順にsortしたら、12月の人より、1月の人が先に出ます。 > 12月の人の次に1月の人が出るようにしたいですが。。。 普通は月は1,2,3...11,12の順番だと思います。 実際に12月を1月の前にするとすると、11月や2月の扱いはどうしたいのでしょうか?

すると、全ての回答が全文表示されます。
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

生年月日を文字列型ではなく DATE 型にすると万事解決します

すると、全ての回答が全文表示されます。

関連するQ&A