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

generate_series()-Äquivalent in MySQL

So mache ich es. Es erstellt einen Datumsbereich ab 2011-01-01 bis 31.12.2011 :

select 
    date_format(
        adddate('2011-1-1', @num:[email protected]+1), 
        '%Y-%m-%d'
    ) date
from 
    any_table,    
    (select @num:=-1) num
limit 
    365

-- use limit 366 for leap years if you're putting this in production

Die einzige Voraussetzung ist, dass die Anzahl der Zeilen in any_table sollte größer oder gleich der Größe des benötigten Bereichs sein (>=365 Zeilen in diesem Beispiel). Sie werden dies höchstwahrscheinlich als Unterabfrage Ihrer gesamten Abfrage verwenden, also in Ihrem Fall any_table kann eine der Tabellen sein, die Sie in dieser Abfrage verwenden.