0

我在名为 Contacted 的表中有一个列,其中包含格式为 Ymd 的联系人日期。我希望我的 cronjob 文件只包含那些 Contacted 值为 7 天前的条目。所以我这样做

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

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

4

2 回答 2

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

于 2013-08-11T19:31:28.427 回答
0

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

于 2013-08-11T19:30:11.560 回答