Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

generate_series() equivalente no MySQL


É assim que eu faço. Ele cria um intervalo de datas de 2011-01-01 até 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

O único requisito é que o número de linhas em any_table deve ser maior ou igual ao tamanho do intervalo necessário (>=365 linhas neste exemplo). Você provavelmente usará isso como uma subconsulta de toda a sua consulta, portanto, no seu caso, qualquer_tabela pode ser uma das tabelas que você usa nessa consulta.