查询中两个时间戳的比较

时间:2013-08-02 13:51:42

标签: php mysql

我想运行一个cron作业,在db表中检查时间戳小于当前时间+ 1个月。 但不知道我该怎么做。

我尝试了一些但不起作用的东西。

$buy_time=strtotime($row['sdate']);
$current_time= strtotime("now");
$diff=$current_time - $buy_time; 

$SQL = "UPDATE product SET status=0 WHERE sdate <'$diff'";
$res= mysqli_query($link,$SQL);

2 个答案:

答案 0 :(得分:1)

假设您正在为sdate字段使用本机mysql日期/日期时间字段,那么不要使用PHP生成日期并将其粘贴到查询中,直接在MySQL中执行所有操作:

... WHERE sdate >= (NOW() - INTERVAL 1 MONTH)

答案 1 :(得分:0)

$currentTime = time();
$timePlusMonth = $currentTime+30*24*60*60; //30 days * 24 hours * 60 minutes * 60 seconds
$timePlusMonth = date("Y-m-d H:i:s", $timePlusMonth);

$query = "UPDATE product SET status=0 WHERE sdate < '$timePlusMonth'";
mysqli_query($link, $query);

你的'sdate'栏必须是Y-m-d H:i:s格式(2013-08-02 16:02:45)