• ベストアンサー

PHPとMySQLで時間を比較するにはどうすればいいですか?

MySQLには他のデータ挿入したときに同時にその時間がわかるように timestampを利用して時間を記憶しています。 記憶した時間から24時間以上たっているものを探すには どのようなプログラムをPHPで書けばいいでしょうか? cronを使って一日に2回くらいのペースでこの抽出操作を行おうと考えているのですが、 どうやって時間を比較していいかがわかりません。 よろしくお願いします。

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

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

とりあえずphpでdateをつかって整形した今を得ておき MySQLの方で1日前より小さい値を得ればよいのでは? <?PHP $now=date("Y-m-d h:i:s"); $sql="SELECT * FROM `テーブル` WHERE `タイムスタンプフィールド`<'{$now}' - INTERVAL 1 DAY"; ?> http://www.php.net/manual/ja/function.date.php http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html

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

その他の回答 (1)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

完全にMySQLネタでPHPは関係無いですが… 24時間前という表現はSQL文のみで表現可能です。 mysql> select DATE_SUB(NOW(),INTERVAL 1 DAY); +--------------------------------+ | DATE_SUB(NOW(),INTERVAL 1 DAY) | +--------------------------------+ | 2006-11-25 05:00:07 | +--------------------------------+ 「DATE_ADD(NOW(),INTERVAL 1 DAY)」は24時間前(一日前)を表します。 MySQL内の timestamp型との比較であれば、 select xxxx as time where time < DATE_SUB(NOW(),INTERVAL 1 DAY); とSQL文だけで完結します。PHPは関係無いですね。

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

関連するQ&A