sql >> Base de Datos >  >> RDS >> Mysql

Consulta SQL que devuelve una tabla donde cada fila representa una fecha en un rango dado

AFAIK no puedes hacer eso con una sola consulta SQL. Sin embargo, el siguiente bloque de código hará el trabajo.

Actualmente en Transact-SQL (para SQL Server). No sé cómo se traduce esto a 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

Esto genera:

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