Php Mysql更新数据库,其中日期==-15自当前

Php Mysql更新数据库,其中日期==-15自当前,php,mysql,Php,Mysql,我一直在寻找一种方法来做到这一点;我发现一个教程建议使用dateadd(我发现它是mysql中的date_add)函数。。。但我没那么幸运 我需要通过Cronjob每隔15分钟左右更新一次数据库。。。cron作业已经设置好了(Php文件),但是我不能让数据库每十五分钟更新一次 不管怎么说,这就是我目前得到的代码--我真的很紧张,试图找出如何让它工作。。。所以我知道我所做的实际上不起作用 UPDATE starinformation SET starOwner = nextOwner, deat

我一直在寻找一种方法来做到这一点;我发现一个教程建议使用dateadd(我发现它是mysql中的date_add)函数。。。但我没那么幸运

我需要通过Cronjob每隔15分钟左右更新一次数据库。。。cron作业已经设置好了(Php文件),但是我不能让数据库每十五分钟更新一次

不管怎么说,这就是我目前得到的代码--我真的很紧张,试图找出如何让它工作。。。所以我知道我所做的实际上不起作用

 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

请看这里,如何使用MySQL处理时间


你是说

 DATE_ADD(NOW(), INTERVAL -15 MINUTE) 

如果
datetime
timestamp
数据类型的
siegeStart
,则

使用

在update语句中

但只有当
siegeStart
seconds
部分也匹配时,更新才会起作用

如果您可以省略日期的
部分,则

使用

请参阅


当前时间减去15分钟可以用两个函数CURTIME和SUBTIME表示:

子时间(CURTIME(),'00:15:00.0')

因此,根据您发布的声明,修改后的版本为:


更新starinformation SET starOwner=nextOwner,death='off',wifi='on',其中underSiege=1和siegeStart=SUBTIME(CURTIME(),'00:15:00.0')

这可能是您一直在寻找的:

UPDATE starinformation SET starOwner = nextOwner, death = 'off', wifi = 'on' WHERE underSiege = 1 AND siegeStart = DATE_SUB(NOW(), INTERVAL 15 MINUTE)
此处
DATE\u SUB
减去给定的日期
NOW()
和给定的
INTERVAL

您可以尝试此方法-

<?php
date('Y-m-d H:i:s', strtotime('-15 minutes'));
?>

UPDATE starinformation SET starOwner = nextOwner, death = 'off', wifi = 'on' WHERE underSiege = 1 AND siegeStart = DATE_SUB(NOW(), INTERVAL 15 MINUTE)
<?php
date('Y-m-d H:i:s', strtotime('-15 minutes'));
?>