喜欢的东西:如何获得的最近6个月的数字只用mysql(无PHP)
SELECT MONTH(*date?*)
FROM
//Not sure what goes here
LIMIT 0,6
我知道它的简单,但我想知道如何获得的最后六个月列表万一我需要加入它。有用的,如果让过去的数据,并使用:
IFNULL(数据,0)
喜欢的东西:如何获得的最近6个月的数字只用mysql(无PHP)
SELECT MONTH(*date?*)
FROM
//Not sure what goes here
LIMIT 0,6
我知道它的简单,但我想知道如何获得的最后六个月列表万一我需要加入它。有用的,如果让过去的数据,并使用:
IFNULL(数据,0)
select month(DATE_SUB(now(), INTERVAL 6 MONTH)) month_6,
month(DATE_SUB(now(), INTERVAL 5 MONTH)) month_5,
month(DATE_SUB(now(), INTERVAL 4 MONTH)) month_4,
month(DATE_SUB(now(), INTERVAL 3 MONTH)) month_3,
month(DATE_SUB(now(), INTERVAL 2 MONTH)) month_2,
month(DATE_SUB(now(), INTERVAL 1 MONTH)) month_1
输出
month_6 month_5 month_4 month_3 month_2 month_1
9 10 11 12 1 2
如果你想让它同时包括当月,然后才开始与5并且去0而不是6到1.
如果您想要行,请执行此操作:
select month(DATE_SUB(now(), INTERVAL 6 MONTH))
union select month(DATE_SUB(now(), INTERVAL 5 MONTH))
union select month(DATE_SUB(now(), INTERVAL 4 MONTH))
union select month(DATE_SUB(now(), INTERVAL 3 MONTH))
union select month(DATE_SUB(now(), INTERVAL 2 MONTH))
union select month(DATE_SUB(now(), INTERVAL 1 MONTH))
输出
9
10
11
12
1
2
不,这是真的比任何类似DCP的一个更好的解决方案,但它可以让你在过去几个月更多的控制。您可以创建1-6表:
create table intervals (i int);
insert into intervals values (1), (2), (3), (4), (5), (6);
然后执行:
select month(date_sub(now(), interval intervals.i month)) month from intervals;
我删除了完全相同的答案:-)然后将删除它一会儿。让我的+1做*右* ;-) – zerkms 2012-03-23 21:13:30
你有你的表_DATE_或_timestamp_列?如果是的话,使用WHERE子句来获得你想要的行,如果没有,我不认为mysql会将日期/时间数据保存到元数据中的记录中。 – luukes 2012-03-23 20:50:25