php - MySQL:在查询中检查 future 一个月或一年

标签 php mysql time

我有一个自动计费流程,需要通过 cron 作业实现自动化。我想查询在哪里可以检查数据库是否准备好自动计费付款。

这是表格:

id  user_id     client_id   payment_id                      save_details    auto_billing    price   plan    created     active
3   1           1           PAY-xxxxxxxxxxxxxxxxxxxxxxxx    0               1               10      M       1484576988  2
7   1           1           PAY-yyyyyyyyyyyyyyyyyyyyyyyy    1               1               10      M       1484945652  1
4   1           2           PAY-ssssssssssssssssssssssss    0               1               10      M       1484594351  1
6   1           15          PAY-tttttttttttttttttttttttt    0               1               96      Y       1484615360  1

我当前的查询:

SELECT
     COUNT(`p`.`auto_billing`) AS `total`
FROM
     `payment` `p`
WHERE
     `p`.`auto_billing` = 1
AND
     `p`.`active` = 1

问题是:

如何检查 plan 是否为 M 并添加 created +1 个月或 Y 并添加创建 +1 年起泡沫,我可以通过 PHP 检查当前时间戳并开始自动计费吗?

我需要以某种方式将created字段转换为 future 一年的预期时间,具体取决于plan变量。

我想更改完整的表,但系统已经有大约 7000 条记录,并且不想弄乱某些东西。

谢谢!

最佳答案

只需使用DATE_ADD和条件表达式:

SELECT UNIX_TIMESTAMP(IF(plan='M', DATE_ADD(FROM_UNIXTIME(created), INTERVAL 1 MONTH), DATE_ADD(FROM_UNIXTIME(created), INTERVAL 1 YEAR))) from payment

此 SQL 将添加到创建的适当间隔。

关于php - MySQL:在查询中检查 future 一个月或一年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773236/

相关文章:

php - 来自另一台服务器的安全 MySQL 连接

MySql更新和删除极慢

mysql - SQL NOT IN 仍包含应排除的行

sql - 使用MySQL计算中位数的简单方法

time - 确定按下按键的时间长度

java - 如何在java中获取带秒的UTC时间?

php - 如何使用 javascript 的 addChild 方法将节点添加到我的 div?

php - 如何在 PHP 中显示(回显/打印)当前设置的错误报告级别?

php - 当遇到特殊字符时停止获取tinymce内容

java - SimpleDateFormat 返回两个不同的时区