where子句与数学

时间:2013-08-11 19:20:22

标签: php mysql cron

我在表中有一个名为Contacted的列,其中包含格式为Y-m-d的联系日期。 我希望我的cronjob文件只接受7天前接触值的条目。所以我这样做

$checkstat = "Contacted";
$checkdate = date("Y-m-d");
$result = mysql_query("SELECT * FROM data WHERE Status = '$checkstat' AND Contacted - '$checkdate' = 7");

但它不起作用。想法是减去日期,如果过了7天,结果应为7,但它不会取任何东西。可能是什么问题?

2 个答案:

答案 0 :(得分:1)

为什么不发送“从现在开始的七天”日期,而不是在MySQL中减去并为每一行重复该操作?

这样的事情:

$date = date('Y-m-d');
$seven_days_from_today = date('Y-m-d', strtotime("+7 days", strtotime($date)));

// Your query
$result = mysql_query("SELECT * FROM data WHERE Status = '$checkstat' AND Contacted = '$seven_days_from_today'");

附注:mysql_函数已弃用。请开始使用mysqlipdo

答案 1 :(得分:0)

您可以将“联系”列定义为int,然后使用PHP函数(如strtodate()和datetostr(),...)将该整数转换为您想要的任何格式并对其执行算术运算。
例如,您可以使用PHP日期(“u”)函数,这将以整数形式返回时间,以便您可以轻松地将其保存到数据库中并对其进行操作。