【问题标题】:SQL Select data in the last 1 minutesSQL Select 最近1分钟的数据
【发布时间】:2023-02-09 23:57:52
【问题描述】:

我目前正在练习我的 SQL 技能。我想获取过去1分钟内的所有数据。

查询是SELECT * FROM menfesses WHERE created_at >= NOW() - INTERVAL 1 MINUTE; 但不知何故,它返回所有数据。

我也使用 date_add 方法但没有任何效果

我做错了什么?谢谢

【问题讨论】:

  • 服务器时间是22.30。所以它不应该在 1 分钟内

标签: mysql sql


【解决方案1】:

必须使用 BETWEEN 选择最后五分钟。

还测试你应该添加

SELECT created_at, Now() FROM menfesses WHERE created_at BETWEEN NOW() - INTERVAL 5 MINUTE AND NOW()

这样就有机会正确调试它

Between 只会给你正确的数据,因为你的测试服务器的日期可能比现在晚

【讨论】:

  • 试图使用它,不知何故现在它总是返回 0 表。我试图将其更改为 60 分钟仍然 0 表
  • 然后在没有 where 子句的情况下运行代码,看看你得到了什么,时间总是很棘手
【解决方案2】:

可能您的服务器时间不是您认为的那样。

这项工作每圈 5 分钟。

SQL Fiddle

MySQL 5.6 架构设置:

CREATE TABLE t1
    (`c_date` datetime)
;
    
INSERT INTO t1
    (`c_date`)
VALUES
    (NOW() - INTERVAL 30 MINUTE),
    (NOW() - INTERVAL 2 MINUTE),
    (NOW() - INTERVAL 1 MINUTE)
;

查询 1:

SELECT *,NOW() FROM t1 WHERE c_date >= NOW() - INTERVAL 5 MINUTE

Results:

|               c_date |                NOW() |
|----------------------|----------------------|
| 2023-02-09T15:44:05Z | 2023-02-09T15:46:20Z |
| 2023-02-09T15:45:05Z | 2023-02-09T15:46:20Z |

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多