在 MySQL 日期间隔中,1 个月与 30 天相同吗? 1 季度与 3 个月相同吗?等等?

发布于 2024-12-10 20:22:51 字数 216 浏览 0 评论 0原文

我正在尝试编写一个 PHP 脚本,该脚本将处理每月、每季度、每年等的定期付款。该脚本将作为每晚的 Cron 作业运行。

我不想遇到这样的情况:有人在 1 月 15 日订阅,然后在 2 月 1 日再次计费。

如果我按照 INTERVAL 1 MONTH 检查最后一笔付款,会发生什么情况吗?还是与 INTERVAL 30 DAY 一样,仅在 2 月 15 日再次处理付款,这正是我想要的?

I am trying to write a PHP script that will process recurring payments every month, quarter, year, etc. This script will run as a nightly Cron job.

I don't want to run into a situation where somebody subscribes, say, on the 15th of a January, and then gets billed again on the 1st of February.

Is that what would happen if I checked the last payment against INTERVAL 1 MONTH? Or would it be the same as INTERVAL 30 DAY, and only process the payment again on the 15th of February, which is what I want?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

未蓝澄海的烟 2024-12-17 20:22:51

根据 MYSQL

如果添加 MONTH、YEAR_MONTH 或 YEAR 并且结果日期有一天
大于新月的最大天数,该天是
调整为新月份的最大天数:

mysql> SELECT DATE_ADD('2009-01-30', 间隔 1 个月);
-> '2009-02-28' 日期算术运算需要完整日期,不适用于不完整日期,例如 '2006-07-00' 或
严重畸形的日期:

因此,如果您使用 1 个月内置函数,您不必担心该月的最后一天是什么时候。 MYSQL 为您完成所有工作。

Accroding to MYSQL

If you add MONTH, YEAR_MONTH, or YEAR and the resulting date has a day
that is larger than the maximum day for the new month, the day is
adjusted to the maximum days in the new month:

mysql> SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);
-> '2009-02-28' Date arithmetic operations require complete dates and do not work with incomplete dates such as '2006-07-00' or
badly malformed dates:

Thus if you use the 1 month built in function you do not have to worry when the last day of the month is. MYSQL does all the work for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文