首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何一次添加MySQL间隔?

如何一次添加MySQL间隔?
EN

Stack Overflow用户
提问于 2013-05-28 15:10:54
回答 1查看 69关注 0票数 0

请查看以下查询:

代码语言:javascript
复制
UPDATE `un_test` 
SET `test_time` = DATE_ADD(`test_time`, INTERVAL 'test_minute' MINUTE) 
WHERE deliver_at_user < NOW();

如果数据库时间小于当前时间,则会增加5分钟。

现在,如果test_time时间超过5分钟,则在执行此查询后,test_time仍然不满足条件。

我正在寻找的是,是否有任何快捷方式可以一次将test_minute的倍数添加到test_time字段,使其满足下一个可能的有效时间更新的标准/test_time

我正在寻找SQL查询级的解决方案,不想写的PHP脚本为此。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 15:39:26

代码语言:javascript
复制
update un_test
set test_time = date_add(test_time, interval 
    cast(ceiling(timestampdiff(minute, test_time, now())/test_minute) 
    * test_minute as int) minute)
where deliver_at_user < now()

这应该是可行的,或多或少。:D

下面的逻辑是这样的

  1. 计算有多少test_time是滞后的,以及随后需要向其添加多少轮test_minute。
  2. 将小数向上舍入。这是最重要的一点,因为这将确保生成的test_time大于sysdate
  3. Multiply与test_minute的结果并将其添加到test_minute。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16785868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档