• ベストアンサー

24時間以内に更新されたデータを取得

MySQL3で24時間に更新されたデータを取得したいのですが、いまいち方法が分かりません。 select * from test WHERE to_days(now()-60*60*24) > UpdataDate このような形では無理なようなのですが、いい方法はあるでしょうか? UpdataDateはdatetime型です。 よろしくお願いします。

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

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

こんなんじゃないですか? SELECT * FROM `test` WHERE `UpdataDate`>=sysdate() - interval 1 day

参考URL:
http://www.mysql.gr.jp/Manual/mysql-3.23.49/manual.ja_Reference.html#Date_and_time_functions
phptest
質問者

補足

ご回答ありがとうございます。 参考にさせていただきます。 先程自分でもいろいろ考えていて、以下のようなSQL文に辿りついたのですが、とりあえず24時間以上、以内で試すと問題なさそうだったのですが、いかがでしょうか? select * from test WHERE DATE_ADD (UpdataDate,INTERVAL 24 HOUR) > NOW()";

その他の回答 (1)

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

参考サイトにもかいてあるとおり NOW()とSYSDATE()とCURRENT_TIMESTAMP は 同意です。 SQLの場合SYSDATEはORACLEっぽい書き方ですが やや文法は違うみたいですね。 またDATE_ADD()はADDDATE()、DATE_SUB()は SUBDATE()と同意で、INTERVALを直接足し引き するのも同じ意味なので、お好きな書式で 書かれると良いと思います