プロが教えるわが家の防犯対策術!

SELECT ○○ FROM ×× WHERE date = 今月分
と言った感じで、今月挿入されたデータを取り出したいのですが、良い方法はありませんか。
select date_format(now(), '%m') か何かを組み合わせれば良いのかと試しましたが、うまくいきませんでした。(文法のミスかもしれません)
よろしくお願いします。

A 回答 (2件)

すみません、PHPのカテゴリの質問と勘違いしてPHPである前提で答えちゃいました。



dateがdateもしくはdatetime計だとしたらmonth(date)で月が取り出せます。ですから
month(date) = month(now())で今月をヒットさせる事ができます。これだけだと去年、一昨年の今月にヒットしてしまいますので、年のチェックも必要になりますね。

もし「今月」に限定されるのであれば、考え方を変えて「今月1日以降のデータ」で良い訳ですよね?となるとdate >= date_format(now(),'%Y-%m-01') でもいけるんじゃないでしょうか。
    • good
    • 1
この回答へのお礼

どちらの方法もうまくいきました。
助かりました、ありがとうございまいした。

お礼日時:2005/05/29 11:06

フィールド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型で持っています。そうするとこういう日付の計算がすごく楽ですし、データの容量も少なくて済みます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す