Mysql更新数据库,其中date == -15来自当前

时间:2014-04-15 03:58:32

标签: php mysql

我一直在寻找一种方法来做到这一点;我发现一个教程建议使用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

6 个答案:

答案 0 :(得分:1)

你可以试试这个.-

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

答案 1 :(得分:0)

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

Add 2 hours to current time in MySQL?

答案 2 :(得分:0)

你的意思是

 DATE_ADD(NOW(), INTERVAL -15 MINUTE) 

答案 3 :(得分:0)

如果siegeStartdatetime数据类型为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