gpt4 book ai didi

MYSQL - DATE_SUB 和 INTERVAL

转载 作者:行者123 更新时间:2023-11-29 16:08:44 24 4
gpt4 key购买 nike

我在脚本中使用以下查询,该脚本会根据订单日期 - 1 个月自动向客户充值。

SELECT * FROM registrations WHERE orderdate = DATE_SUB(CURDATE(), INTERVAL 1 month)

问题是,对于天数比上个月多的月份,此查询每天的运行次数都比前一天多。

例如

3 月比 2 月多 2-3 天,因此 2 月 28/29 日查询将运行 2-3 次。

3月28日将运行2月28日(这没问题)

3 月 29 日将再次获取 2 月 28 日(重复)

3 月 30 日将再次获取 2 月 28 日(重复)

3 月 31 日将再次获取 2 月 28 日(重复)

如何避免重复

最佳答案

您可以将比较分为 3 个单独的部分,将年份和月份值与一个月前进行比较,但不触及日期值。这样,3 月 31 日将转换为 2 月 31 日,无法匹配任何内容。

SELECT *
FROM registrations
WHERE YEAR(orderdate) = YEAR(CURDATE() - INTERVAL 1 MONTH)
AND MONTH(orderdate) = MONTH(CURDATE() - INTERVAL 1 MONTH)
AND DAY(orderdate) = DAY(CURDATE())

关于MYSQL - DATE_SUB 和 INTERVAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55485015/

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