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

解決済みの質問

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

MySQLには他のデータ挿入したときに同時にその時間がわかるように
timestampを利用して時間を記憶しています。

記憶した時間から24時間以上たっているものを探すには
どのようなプログラムをPHPで書けばいいでしょうか?

cronを使って一日に2回くらいのペースでこの抽出操作を行おうと考えているのですが、
どうやって時間を比較していいかがわかりません。
よろしくお願いします。

投稿日時 - 2006-11-26 01:11:14

連想キーワード:

QNo.2562533

すぐに回答ほしいです

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

とりあえず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

ANo.1

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

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.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は関係無いですね。

投稿日時 - 2006-11-26 05:18:41

あわせてチェックしたい
  • MySQLのTimestamp型 ...
  • TIMESTAMPについて ...
  • mySQLの抽出条件について ...
PR
【夫婦アンケート】バレンタインしてますか?[ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら