如果到期日期与当前日期相距30天,则使用cron job尝试将30dexpf字段更新为1。否则30dexpf应该有0但没有成功。
$query="UPDATE user_pages SET 30dexpf=1 WHERE expiry > CURRENT_DATE - INTERVAL 30 DAY";
我也试过这个但没有成功
$query="update user_pages 30dexpf =
(case when expiry > CURRENT_DATE - INTERVAL 30 DAY then 1 else 0 end)";
这是我的数据库结构
| user_id | 30dexpf | expiry |
| 7 | 0 | 2016-08-30 11:27:56 |
答案 0 :(得分:1)
我猜您要将30dexpf
字段更新为1
,如果到期日期距离当前日期正好30天。否则,30dexpf
应该有0
。
UPDATE user_pages
SET `30dexpf` = CASE
WHEN (
DATE(expiry) = CURDATE() + INTERVAL 30 DAY
) THEN 1 ELSE 0 END;
答案 1 :(得分:0)
你需要"<" (少于) 到期(A)需要小于当前日期(B)到期吗?
但我想添加更多提示
update
和select
查询使用相同的where子句 - 您可以查询结果集并查看它是否正确然后复制完整的where子句update
语句< / p>
(我无法评论jurgen d的答案,所以我在此发帖)