gpt4 book ai didi

php - 根据表中分配的日期范围按日期过滤记录

转载 作者:行者123 更新时间:2023-11-29 03:39:08 26 4
gpt4 key购买 nike

我正在设置一个计划的 cron 作业,每隔一个星期一启动一个 PHP 脚本。我的目标是运行一个 SQL 查询,该查询根据我公司的支付期返回工作订单——每个支付期在我运行这个计划的 cron 作业之前的星期五结束。

我有一个列出我公司所有支付周期的 SQL 表,所以这个表有两列:payperiod_from(开始日期范围)和 payperiod_to(结束日期范围)。我正在提取的工单有一个分配给它们的日期。我希望能够提取日期介于 payperiod_frompayperiod_to 之间的工单。

由于支付周期每隔一个星期五结束,而这个 cron 作业安排在之后的星期一,我可以简单地使用 CURDATE() - 3(星期一至星期五前 3 天);获取 payperiod_to 日期,但我如何运行查询来过滤日期在正确支付周期内的工单?

希望这对你们中的一些人有意义。

最佳答案

尝试为“每隔一周”设置一个 cron 作业可能会遇到麻烦。关于 here 有一个 StackOverflow 答案;请注意答案下方的评论。

至于选择日期在正确支付周期内的工单,如果您已经将支付周期结束计算为 CURDATE() 前三天,为什么不忘记 pay_periods 表(或任何名称)并计算从 CURDATE() 之前 16 天开始的支付期:

SELECT * FROM wkorder
WHERE wkorder.orderdate BETWEEN CURDATE() - INTERVAL 16 DAY AND CURDATE - INTERVAL 3 DAY

如果您无法让 cron 作业每隔一周可靠地运行一次并且必须将其设置为每周一次,那么您可以使用 pay_periods 表来过滤掉休息周。如果前一个星期五不是支付期结束日期,这将阻止任何结果,因为在 pay_period 表中没有匹配项:

SELECT * FROM wkorder
INNER JOIN pay_period ON
payperiod_to = CURDATE() - INTERVAL 3 DAY AND
wkorder.orderdate BETWEEN pay_period.payperiod_from AND pay_period.payperiod_to

最后,请注意上面的查询在语法上是正确的,但它们没有经过全面测试。从问题中的信息到实际表结构的飞跃太大了。

关于php - 根据表中分配的日期范围按日期过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861955/

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