2012-04-14 13 views
0

可能性の重複:
count date difference in hours using php and mysql2回の時間差を確認しますか?

私はMySQLのテーブルを持って、列some_columnがありますします。この列はdatetimeに設定され、更新されるとNOW()として更新されます。

私がしたいのは、dbをクエリすることです。そのsome_columnの値は、そこにあるものとクエリを実行するときの時間の差をチェックします。私は2時間以上経過したかどうかを知りたい。

PHPでどうやったらいいですか?それともMySQLでやっていますか?

+0

を@ hakre - それはほぼ同じことですが、同じ文脈ではありません。 – Roland

+0

@hakre - 問題はない、私はちょうどその質問を見つけなかった、私は他のものを見つけたが、あなたが投稿したものに近いものではなかった:) – Roland

答えて

2
SELECT IF(TIMEDIFF(NOW(),`some_column`) > '02:00:00',1,0) FROM `table` 

か、見てみましょう:

SELECT * FROM `table` WHERE `some_column` < DATE_ADD(NOW(),INTERVAL -2 HOUR) 
+0

私はちょうど2時間以上経過したかどうかを見てすべての列を新しいデータで更新します:) – Roland

+0

これはまさにあなたが探しているものです。 2時間以上経過すると、クエリから返されるフィールド#0は1になります。そうでなければ0。 "AS"(例えば、 "SELECT IF(TIMEDIFF(NOW()、' some_column')> '02:00:00 '、1,0)を 'table'よりも前に使用して)名前を付けることができます。 $ row ['morethan']がフェッチされます(そして$ row [0])。 – Qualcuno

+0

@qualcuno - このように使用している場合、 '$ sql =" SELECT IF(TIMEDIFF(NOW()、last_update)> '02:00:00 '、1,0) ($ stmt = $ this-> connect-> prepare($ sql)){ \t $ stmt-> execute(); \t \t \t \t $ stmt-> bind_result($ time); \t \t \t $ stmt-> fetch(); \t \t \t $ stmt-> close(); \t \t} else { \t \t \t return false; \t \t}「私はどうしますか?私は何も推測しない:)私はちょうどその時差を取得したいと私はできるように見えることはできません。 – Roland

1
<?php 

$time = // Run query to get datetime value from db 

$time = strtotime($time); 

$dif = time()-$time; 

$dif = date('H', $dif); 

if($dif >= 2) 
{ 
    // Do something 
} 

?> 
+0

OK、これは私の方が適しているようです – Roland

関連する問題