MySQL:从当月和前3个月返回记录

Oll*_*rca 0 mysql date filter

我使用PHP/MySQL的预订系统和我使用的是谷歌折线图,试图从当前月份显示的销售总额,并在过去3个月.

每个预订都有标准的phpmyadmin"date"格式的日期,所以yyyy:mm:dd.

因此,我希望从4个查询中获得4个结果,每个查询过滤掉某个月并从该月获取每个预订的总和.

我的问题是,我如何区分查询中的月份?我将如何构建查询?

Abs*_*ERØ 6

根据标题:

select * from bookings where MONTH(CURDATE())=MONTH(booking_date);
select * from bookings where MONTH(booking_date) > MONTH(CURDATE()-INTERVAL 3 MONTH) and < MONTH(CURDATE() + INTERVAL 1 MONTH);
Run Code Online (Sandbox Code Playgroud)

对于简单的每月搜索,您可以使用以下内容:

Select * from bookings where MONTHNAME(booking_date)='July' and YEAR(booking_date)=2013;
Run Code Online (Sandbox Code Playgroud)

要么:

Select * from bookings where MONTH(booking_date)=7 and YEAR(booking_date)=2013;
Run Code Online (Sandbox Code Playgroud)

此外,由于你已经有了几个月,你可以这样做(这种方法要求你维护一个每个月的结束日期表,以补偿闰年):

select * from bookings where booking_date>'2013-06-30' AND booking_date<'2013-08-01';
Run Code Online (Sandbox Code Playgroud)