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 时间,那么您可能希望使用 UTC_TIMESTAMP() 而不是 NOW() 进行比较。

于 2012-06-19T19:38:38.193 回答