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

MySQL Generieren Sie jedes Datum aus der Datumsbereichsliste

Sie können das Datum mit from_days() in Tageszahlen umwandeln und dann eine innere Verknüpfung mit der Tally-Tabelle durchführen (mit fortlaufenden Zahlen von 1). Die Nummer 730485 ist der Versatz '2000-01-01' (select from_days('2000-01-01') )

select a.* , from_days(t.tallyid+730485) from 
(
    select 'a' code , '2016-04-19' date1,  '2016-04-21' date2
    union all
    select 'b'code , '2016-04-13' date1,  '2016-04-14' date2
) a
inner join Tally t on t.tallyid between (TO_DAYS(a.date1)-730485) and (TO_DAYS(a.date2)-730485)