2

私は基本的な Cookie 追跡を設定し、Cookie がコンピュータ上にあり、IP が保存したレコードと一致し、レコードが過去 1 時間以内に保存されたことを確認して検証しています。過去 1 時間以内に mySQL データを選択することに夢中になっています。

現状では、私のテーブルの列は「タイムスタンプ」と呼ばれ、NOW() で挿入された完全なタイムスタンプが含まれています。私は周りをチェックして、正しい呼び出しを見つけたと思いましたが、これはうまくいきませんでした:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp < DATEADD(HOUR, -1, CURRENT_TIMESTAMP) ";

タイムスタンプ呼び出しを取り出すと、すべて正常に動作するので、その部分だけです。

ありがとう!

4

2 に答える 2

5

試す:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp > DATE_SUB(CURDATE(), INTERVAL 1 HOUR)";
于 2012-09-12T22:04:43.200 に答える
2

現在のクエリでは、1 時間以上前の行が選択されます。タイムスタンプ述語を変更して、時間が新しいか等しい (つまり、より大きいか等しい) 行をフェッチするようにします。

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp >= DATEADD(HOUR, -1, CURRENT_TIMESTAMP) ";

dateadd が mysql でこのように機能するかどうかわからないことに注意してください。あなたの場合に関連する関数を適用してください。

于 2012-09-12T22:04:56.330 に答える