こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MYSQLで、今日まで過去30日間のデータの抽出の仕方について

よろしくお願いいたします。

趣味と勉強を兼ねてデータベースのサイトを作っています。

http://www.game-minzoku.jp/index.php

↑このようなゲームソフトのデータベースサイトを作っていて、
今日までの過去30日間に発売したデータだけを抽出して表示させたいと思っています。

「hatsubai」というフィールドに『2009-7-30』というようにデータを入れてあります。 

調べた知識で、

----------------------------------------------------------------
$sql = "select * from ○○
where TO_DAYS(NOW()) - TO_DAYS(hatsubai) < 30 order by hatsubai desc;";
----------------------------------------------------------------
と書いてみて、一応過去30日間のデータを抽出できたと思っていたのですが、今日(現在2009/7/6)より先のデータも出てきてしまっている感じです。

今日(現在2009/7/6)より先のデータはここでは抽出しないようにするにはどのように記述すればよいのでしょうか?

またご不明な点や言葉足らずな点などあればビシビシおっしゃってください。

よろしくお願いいたします!

投稿日時 - 2009-07-06 22:05:24

QNo.5104185

困ってます

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

条件式が足りません。つまりマイナス値もこの指定の範囲に入ってしまっています。
以下のように0以上という文をAND文で入れてみると上手くいくと思います。
0という数値は当日を含めるかどうかで変えてください。

----------------------------------------------------------------
SELECT * FROM ○○
WHERE TO_DAYS( NOW( ) ) - TO_DAYS( hatsubai ) < 30
AND TO_DAYS( NOW( ) ) - TO_DAYS( hatsubai ) > 0
ORDER BY hatsubai DESC
----------------------------------------------------------------

投稿日時 - 2009-07-06 22:55:59

お礼

回答者様。
ありがとうございます!
ばっちりできました!こんな初歩的な質問で申し訳ないです!
本当にありがとうございます!!

投稿日時 - 2009-07-06 23:27:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問