Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL-Auswahlabfrage gibt Liste der Monate als Zeichenfolge zwischen Start- und Enddatum zurück

Die folgende Abfrage sollte den Zweck erfüllen.

Ihre Daten in Eingabe und Ausgabe sind für die zweite Zeile unterschiedlich, ich habe sie für die Ausgabedaten ausgeführt

select id, DATE_FORMAT(start_Date, '%Y-%c-%d') as Start_Date,
       DATE_FORMAT(end_date,'%Y-%c-%d') as END_Date,
       group_concat( distinct(DATE_FORMAT(aDate, '%Y %M '))) as Descp
from (
     select ss.end_date - interval (a.a ) month as aDate from
     (select 0 as a union all select 1 union all select 2 union all select 3
     union all select 4 union all select 5 union all select 6 union all
     select 7 union all select 8 union all select 9) a, Contracts ss 
     ) mon, Contracts sa
where aDate between sa.start_date and sa.end_date
group by id;