sql >> Databáze >  >> RDS >> Mysql

SQL dotaz, který vrací tabulku, kde každý řádek představuje datum v daném rozsahu

AFAIK to nemůžete udělat jediným SQL dotazem. Následující blok kódu to však udělá.

Aktuálně v Transact-SQL (pro SQL Server). Nevím, jak se to převádí do 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

Výsledkem je:

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


  1. použití auto_increment ve složeném klíči

  2. Obecné řešení Ruby pro SQLite3 LIKE nebo PostgreSQL ILIKE?

  3. Identifikace a oprava problému s výkonem předávaných záznamů

  4. Přejmenování tabulky InnoDB bez aktualizace odkazů na cizí klíč?