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

Consulta SQL que retorna uma tabela onde cada linha representa uma data em um determinado intervalo


AFAIK você não pode fazer isso com uma única consulta SQL. No entanto, o seguinte bloco de código fará o trabalho.

Atualmente em Transact-SQL (para SQL Server). Eu não sei como isso se traduz em MySQL.
DECLARE @start datetime
DECLARE @end datetime
DECLARE @results TABLE
(
   val datetime not null
)
set @start = '2008-10-01'
set @end = getdate()
while @start < @end
begin
    insert into @results values(@start)
    SELECT @start = DATEADD (d, 1, @start)
end
select val from @results

Isso produz:
2008-10-01 00:00:00.000
2008-10-02 00:00:00.000
2008-10-03 00:00:00.000