- ベストアンサー
SELECT の仕方 (今月のデータを取り出す)
SELECT ○○ FROM ×× WHERE date = 今月分 と言った感じで、今月挿入されたデータを取り出したいのですが、良い方法はありませんか。 select date_format(now(), '%m') か何かを組み合わせれば良いのかと試しましたが、うまくいきませんでした。(文法のミスかもしれません) よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、PHPのカテゴリの質問と勘違いしてPHPである前提で答えちゃいました。 dateがdateもしくはdatetime計だとしたらmonth(date)で月が取り出せます。ですから month(date) = month(now())で今月をヒットさせる事ができます。これだけだと去年、一昨年の今月にヒットしてしまいますので、年のチェックも必要になりますね。 もし「今月」に限定されるのであれば、考え方を変えて「今月1日以降のデータ」で良い訳ですよね?となるとdate >= date_format(now(),'%Y-%m-01') でもいけるんじゃないでしょうか。
その他の回答 (1)
- wakame0729
- ベストアンサー率32% (245/765)
フィールドdateはdateもしくはdatetime型ですか?だとしたら今月が2005/05だとすると date >= '2005/05/01' and date < '2005/06/01' というSQLになると思います。今月1日や来月1日の求め方はPHPで date('Y/m/d',mktime(0,0,0,date('m'),1,date('Y'))) date('Y/m/d',mktime(0,0,0,date('m')+1,1,date('Y'))) (括弧の数合ってるかな?(^^;)てな感じで求められると思います。 うちでは日付関係は全部タイムスタンプの数値にしてint型で持っています。そうするとこういう日付の計算がすごく楽ですし、データの容量も少なくて済みます。
お礼
どちらの方法もうまくいきました。 助かりました、ありがとうございまいした。