我试图保留数据库标记30dexpf = 1
,直到项目的到期日期等于或等到即将到来的7天到30天之间
这是我的数据库表
30dexpf | expiry
--------|--------
0 | 2016-12-15 14:18:00
0 | 2016-12-17 14:18:00
据我所知,它可能是这样的:
$query="UPDATE user_pages
SET `30dexpf` = CASE
WHEN (
DATE(expiry) = CURDATE() + INTERVAL 7 DAY
) THEN 1 ELSE 0 END;";
答案 0 :(得分:2)
尝试使用以下查询:
UPDATE user_pages
SET
`30dexpf` = 1
WHERE
DATEDIFF(expiry, CURDATE()) >= 7 AND DATEDIFF(expiry, CURDATE()) <= 30;
它将更新所有到期日为7到30天的记录。
答案 1 :(得分:0)
您可以尝试以下查询,看看它是否适合您?它现在基本上将+ 7加到下限,30加到上限,如果日期介于两者之间,则将标志设置为1.
$query="UPDATE user_pages
SET `30dexpf` = CASE
WHEN (
DATE(expiry) BETWEEN
DATE_ADD(now(), INTERVAL 7 DAY)
AND DATE_ADD(now(), INTERVAL 30 DAY)
THEN 1 ELSE 0 END;";