gpt4 book ai didi

mysql - php mysql 添加 1 年至今,然后比较新日期是否会在 30 天内到来

转载 作者:行者123 更新时间:2023-11-29 00:32:58 26 4
gpt4 key购买 nike

我一直在编写一个小脚本,用于检查该日期前 30 天的到期日期并发送电子邮件提醒。

我有一个表,其中包含名为 'completed' 的列,表示类(class)完成的日期。每门类(class)有效期为1年。

我一直在尝试做的是首先将一整年添加到“completed”,然后检查新日期是否恰好在 now() 之前 30 天。

示例:类(class)于 2012 年 12 月 31 日结束。有效期至 2013 年 12 月 31 日,因此如果 TODAY 为 2013 年 12 月 1 日,则应发送电子邮件提醒。

我有这个小脚本:

 SELECT distinct
userID
, completed+INTERVAL 1 YEAR AS expires
FROM activity
WHERE completed > NOW() + INTERVAL 30 DAY

但显然它不能完成工作...谁能指出我正确的方向?

谢谢!干杯,格雷格

最佳答案

为了提高效率,您真正需要做的是将 +INTERVAL 1 YEAR 放入 WHERE。您可以使用简单的代数来做到这一点。

completed + (1 YEAR) > NOW + (30 DAYS)

等同于

completed  > NOW + (30 DAYS) - (1 YEAR)

给予

SELECT distinct
userID,
ADDDATE(completed,INTERVAL 1 YEAR) AS expires
FROM activity
-- Used CURRENT_DATE so that time of day is not a factor
WHERE completed > SUBDATE(ADDDATE(CURRENT_DATE,INTERVAL 30 DAY), INTERVAL 1 YEAR)

关于mysql - php mysql 添加 1 年至今,然后比较新日期是否会在 30 天内到来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com