我有一个名为transaction_date的日期时间字段,在我需要选择上个日历月的报告中,我该怎么做? (这应该像一月一样工作一个月)
我想出了以下内容,但这只适用于月份不是1月的情况,
SELECT SUM(amount) AS pay_month FROM `users_payment` WHERE MONTH(transaction_datetime)= MONTH(NOW()) AND YEAR(transaction_datetime)=YEAR(NOW())
有很多使用INTERVAL函数的例子,但这只是选择时间间隔而不是我想要的日历月..
喜欢
SELECT SUM(amount) AS `year_month` FROM `users_payment` WHERE DATE_ADD(NOW(), INTERVAL -1 MONTH) < transaction_datetime
但这不是我想要的,我想去年仅选择DECEMBER的销售额(记得在表中还有其他年份,我不想要,即1979年,1981年......等)
同样的报告下一节,我需要选择最后2个日历月,我不知道怎么做也是这样的 .
2 回答
你试过以下吗?
以上应该显示上个月;然而,它并没有区分年份 .
在第二个想法,我看到你想要做什么 - 获得给定月份的所有交易 . 尝试这样的事情 .
这将列出上一个日历月的所有交易 . 更改
INTERVAL
值以选择多个月 .你可以尝试这个 -