0

次のクエリを実行しようとしています。

SELECT COUNT(*) FROM (
SELECT * FROM vqm_packets WHERE call_end >= DATE_SUB(NOW(), INTERVAL 1 MINUTE) 
UNION ALL 
SELECT * FROM vqm_archive WHERE call_end >= DATE_SUB(NOW(), INTERVAL 1 MINUTE)) AS t;

1分より新しいレコードのみを検索しようとしています。間隔をさらに制限すると(たとえば、1秒に変更すると)、レコード数が減少すると思われますが、そうではありません。問題は、call_endフィールド(UTCでの日時フィールド)に基づく時間制限にあると思います。誰かがクエリの問題を見ることができるかどうかだけ興味がありますか?そうでない場合、now()とUTCを使用するときに問題はありますか?

4

1 に答える 1

3

日時フィールドがUTC時間に設定されている場合は、比較にNOW()ではなくUTC_TIMESTAMP()を使用することをお勧めします。

于 2012-06-19T19:38:38.193 に答える