【问题标题】:Select where time is between -1 and 5 minutes of specified time选择时间在指定时间的 -1 到 5 分钟之间的位置
【发布时间】:2013-04-24 14:36:25
【问题描述】:

我想从 mySQL 数据库中选择当前时间相对于行中的“endTime”字段介于 -1 到 5 分钟之间的行。

“endTime”字段是“时间”类型。

这是我当前的非工作代码:

SELECT  *
FROM    table
WHERE   endTime
            BETWEEN
                DATE_ADD(NOW(), INTERVAL -1 MINUTE)
            AND
                DATE_ADD(NOW(), INTERVAL 5 MINUTE)

任何帮助表示赞赏!

【问题讨论】:

  • 只需交换 endTime 和 NOW() 的用法即可。
  • 它仍然不起作用——它只是返回零行。是因为我给它喂的是时间而不是日期时间吗?
  • 我想是的。如果您只需要 TIME 组件,请添加 TIME()。
  • 感谢您的建议,我终于解决了。

标签: mysql sql time


【解决方案1】:

我自己解决了:

SELECT  *
FROM    table
WHERE   endTime
            > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 MINUTE)
AND     endTime
            < DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 5 MINUTE)

发布此内容以防其他人发现它有用。

【讨论】:

  • 查看解决方案,您的问题似乎令人困惑。您说,'...当前时间相对于 'endTime' 字段在 -1 到 5 分钟之间...',但是在您的问题和答案中,代码都在寻找 endTime相对于当前时间在 -1 到 5 分钟之间。
【解决方案2】:

可能有点晚了——但这会更简洁:

SELECT * FROM table WHERE endTime BETWEEN DATE_SUB(NOW(), INTERVAL 5 MINUTE) AND NOW()

【讨论】:

    猜你喜欢
    • 2017-10-29
    • 1970-01-01
    • 2022-08-20
    • 2022-01-25
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多