先直接上sql语句然后在解释吧!
SELECT CAST( CAST(SUM(c.chrgamount)/1000 AS decimal(18,2)) AS char) chrgamount,
CONCAT(c.firstzm,c.secondzm) as thirdzm FROM (select * from tb_ac_billpaid_yym a union select * from tb_ac_billunpaid b) c
WHERE PERIOD_DIFF(DATE_FORMAT(now(),'%Y%m'),DATE_FORMAT(billcycle,'%Y%m')) =1
GROUP BY c.firstzm,c.secondzm
解释一下这个sql语句的意思吧:
查询表中本月的上一个月的消费情况。
其中
PERIOD_DIFF(DATE_FORMAT(now(),'%Y%m'),DATE_FORMAT(billcycle,'%Y%m')) =1
是这两个时间中的月份做差。
一开始我总是出现一个错误,将那个日期的格式写成了‘%Y-%m’这样的写法是错误的,不可以这样弄,这样子做不了差,所以格式一定要写对。
举个更直接的例子:
比如now()是:‘201708’;
billcycle的值是:‘201707’
那么:FERIOD_DIFF('201708','201707')=1。