pla*_*t x 3 mysql cron datetime
我在系统中有定期付款模式.一切都很好,API成功响应记录在数据库中.我的问题是,我即将自动化系统的后续付款操作(不幸的是,支付网关不支持).通过cron,我将安排检查后续流程和通知中是否必须包含哪些帐户.我这里有一个数据库条目的片段:
+---------------------+---------------------+--------------------+
| payment_date | payment_expirydate | transaction_number |
+---------------------+---------------------+--------------------+
| 2012-02-14 03:47:15 | 2012-05-14 03:47:15 | 1-67815163 |
| 2012-02-16 00:53:03 | 2012-05-16 00:53:03 | 1-69010235 |
| 2012-02-16 08:57:16 | 2012-05-16 08:57:16 | 1-69027483 |
| 2012-02-16 09:08:06 | 2012-05-16 09:08:06 | 1-69027694 |
| 2012-02-16 09:58:17 | 2012-05-16 09:58:17 | 1-69028921 |
| 2012-02-17 09:28:32 | 2012-05-17 09:28:32 | 1-69072076 |
| 2012-02-17 06:17:45 | 2012-05-17 06:17:45 | 1-69068200 |
| 2012-02-17 11:12:08 | 2012-05-17 11:12:08 | 1-69074788 |
+---------------------+---------------------+--------------------+
Run Code Online (Sandbox Code Playgroud)
我在为此创建SQL查询时遇到了困难.假设今天的日期是2012-05-16,时间是07:00:00.我希望得到今天所有的帐户,而不是当前的时间.例如,我需要的唯一有效帐户(基于我指示的当前日期和时间)是帐号1-69010235.
另外,如果在什么时间间隔我应该设置我的cron运行的任何提示?
此查询将返回今天到期的所有记录 -
SELECT *
FROM accounts
WHERE payment_expirydate BETWEEN CURRENT_DATE AND (CURRENT_DATE + INTERVAL 1 DAY - INTERVAL 1 SECOND)
Run Code Online (Sandbox Code Playgroud)
如果您希望所有帐户今天到期但低于当前时间 -
SELECT *
FROM accounts
WHERE payment_expirydate BETWEEN CURRENT_DATE AND CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
对于codeigniter的AR实现,您应该能够使用 -
$this->db->where('payment_expirydate BETWEEN CURRENT_DATE AND CURRENT_TIMESTAMP', NULL, FALSE);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9339 次 |
最近记录: |