获取2个月后的月数和天数的所有月份?

时间:2016-09-10 06:14:32

标签: php mysql date

这是我的2个mysql表。在clients表中显示用户连接日期,并在clients_pay_bill表中显示用户从连接日期(conn_date)支付他/她的帐单的月份。

a)客户

clients_id    conn_date
=======================
1             2016-06-01     
2             2016-07-17
3             2016-06-22
4             2016-09-03

b)clients_pay_bill

cpp_id     clients_id    paid_month
===================================
1          1             2016-07-03 
2          2             2016-07-22
3          4             2016-09-09             
4          2             2016-07-22

现在,我想显示所有月份 s ,其中包含直到当前日期才支付客户的天数和月数。

例如:

clients_id = 1连接日期(conn_date) 2016-06-01 ,他直到现在才支付 2016-07-03 月帐单。所以sql查询将在几个月后输出:

2016-06
2016-08
2016-09
**2016-07 will not print because he already paid this months bill**

我还希望显示天数和月数,例如:某些天的3个月......

我无法想象sql查询应该是什么样的?

1 个答案:

答案 0 :(得分:0)

我会建议你采用一种不同的方法,因为这个方法会在逻辑上和性能上说话。应该采取的方式是让记录在clients_pay_bill中进行处理,而不是在有人支付但他/她应该支付时,作为对其的补充,应该有2列:due_date和{{1} }。所以你的表格看起来像这样:

paid_date

您可以通过cron生成每月到期通知,或者如果您希望保留SQL而不是通过事件。在此之后,您可以通过简单的查询选择pay_month中的哪个到期注释cpp_id clients_id due_month paid_month ==================================================== 1 1 2016-06-03 NULL 1 1 2016-07-03 2016-07-03 1 1 2016-08-03 NULL 2 2 2016-09-22 NULL 3 4 2016-09-09 NULL 4 2 2016-07-22 NULL ,如果付款已完成,则会更新NULL列。

关于日子,我不确定你想要达到什么效果(例子会有所帮助),但是有了应有的注释列表,已经有一半的时间来计算这些记录的天数(例如paid_month