我正在尝试编写一个
的报告页面(A部分)从当前日历月中选择记录(因此,如果在6月10日访问,它将显示6月1日至6月10日的记录)
(B部分)然后是上一个日历月的另一部分(因此5月1日至5月31日)。
我在这次讨论中玩过这个例子MySQL Query to calculate the Previous Month 但我有点困惑。
将
SELECT Count(*)
FROM `table`
WHERE table.timestamp BETWEEN date_format(NOW() - INTERVAL 1 MONTH, '%Y-%m-01') AND last_day(NOW() - INTERVAL 1 MONTH)
满足(PART A)或(B部分)? 好像是(PART A),但我很困惑。
你能帮我构建两个查询吗?这个SQL日期时间的东西真让我头晕目眩。
答案 0 :(得分:1)
如果从日期中减去当月的当天并添加1,则表示当前月份的开头。你可以使用这个逻辑:
where time between date_sub(curdate(), interval day(curdate()) - 1 day) and
date_sub(date_add(date_sub(curdate(), interval day(curdate()) - 1 day), interval 1 month), interval -1 day)