我一直在寻找一种方法来做到这一点;我发现一个教程建议使用dateadd(我发现它是mysql中的date_add)函数...但是我没有运气。
我需要通过Cronjob每15分钟左右更新一次数据库...已经设置了cron作业(Php文件),但我无法让数据库每15分钟更新一次。
无论如何,这是我目前所拥有的代码 - 我真的在努力想弄清楚如何让它发挥作用......所以我知道我做的事情并没有做到。实际上工作。
UPDATE starinformation SET starOwner = nextOwner, death = 'off', wifi = 'on' WHERE underSiege = 1 AND siegeStart = (current_timestamp)-15
我也尝试过这样做
$date=date('-15 minutes'); $sql = "UPDATE starinformation SET starOwner = nextOwner, death = 'off', wifi = 'on' WHERE underSiege = 1 AND siegeStart = ".$date
答案 0 :(得分:1)
你可以试试这个.-
<?php
date('Y-m-d H:i:s', strtotime('-15 minutes'));
?>
答案 1 :(得分:0)
请看这里,如何处理使用MySQL的时间
答案 2 :(得分:0)
你的意思是
DATE_ADD(NOW(), INTERVAL -15 MINUTE)
答案 3 :(得分:0)
如果siegeStart
或datetime
数据类型为timestamp
,则
使用
siegeStart = ( current_timestamp - interval 15 minute )
在更新声明中。
但只有seconds
的{{1}}部分也匹配时,更新才有效。
如果您可以省略{0}}部分日期,那么
使用
siegeStart
参阅:
答案 4 :(得分:0)
当前时间减去15分钟可由两个函数CURTIME和SUBTIME表示:
SUBTIME(CURTIME(), '00:15:00.0');
因此,根据您发布的声明,修改后的版本为:
UPDATE starinformation SET starOwner = nextOwner,death ='off',wifi ='on'WHERE underSiege = 1 AND siegeStart = SUBTIME(CURTIME(),'00:15:00.0')
答案 5 :(得分:0)
这可能是您一直在寻找的:
UPDATE starinformation SET starOwner = nextOwner, death = 'off', wifi = 'on' WHERE underSiege = 1 AND siegeStart = DATE_SUB(NOW(), INTERVAL 15 MINUTE)
此处DATE_SUB
使用给定的NOW()
减去给定日期INTERVAL
。