解決済みの質問
MySQLには他のデータ挿入したときに同時にその時間がわかるように
timestampを利用して時間を記憶しています。
記憶した時間から24時間以上たっているものを探すには
どのようなプログラムをPHPで書けばいいでしょうか?
cronを使って一日に2回くらいのペースでこの抽出操作を行おうと考えているのですが、
どうやって時間を比較していいかがわかりません。
よろしくお願いします。
投稿日時 - 2006-11-26 01:11:14
とりあえず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
投稿日時 - 2006-11-26 02:29:48
3人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
完全に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は関係無いですね。
投稿日時 - 2006-11-26 05:18:41