sql >> Databasteknik >  >> RDS >> Mysql

SQL Query som returnerar en tabell där varje rad representerar ett datum i ett givet intervall

AFAIK kan du inte göra det med en enda SQL-fråga. Men följande kodblock kommer att göra jobbet.

För närvarande i Transact-SQL (för SQL Server). Jag vet inte hur detta översätts till 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

Detta ger ut:

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


  1. execSQL:är bindargs bättre?

  2. Hur får man dagens/gårdagens data från MySQL-databasen?

  3. Välj ett slumpmässigt urval av resultat från ett frågeresultat

  4. problem i många till många relationer