我在脚本中使用以下查询,该脚本会根据订单日期-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日(重复)
如何避免重复
答案 0 :(得分:0)
您可以将比较分为3个单独的部分,将年和月的值与一个月前的值进行比较,但不影响日值。这样,3月31日将转换为2月31日,无法匹配任何内容。
{% for project in projects_created_by_me %}
<p>Project Name: {{project.projectName}}</p>
{% empty %}
<p>You do not have any projects</p>
{% endfor %}
答案 1 :(得分:0)
在这种情况下,丑陋的方法很好:
WHERE orderdate = date( concat( year(curdate())
, '-'
, month(curdate())-1
, '-'
, day(curdate())
)
)
因此无效日期将为null,并且不匹配。