Crear una tabla de range de dates

Estoy escribiendo un informe que debe mostrar un valor por día. Tengo la date de inicio y finalización para la consulta, pero deseo evitar días perdidos en caso de que la tabla no contenga un valor para una date específica. Estaba pensando en crear una tabla de range de dates base que contenga todos los días entre el inicio y el final, y luego unirla a la tabla de datos para mostrar un valor para cada día.

Encontré algunos scripts para mySQL, SQL Server, etc. pero ninguno para SQLite. ¿Hay alguna manera de poblar rápidamente una tabla con un range de dates?

Gracias

Así es como podría usar una tabla de numbers para expandir un range:

 SELECT datetime('now', N || ' seconds') AS DT FROM numbers WHERE N < strftime('%s', 'now', '1 minutes') - strftime('%s', 'now'); 

En este caso, se supone que la tabla de numbers contiene numbers comenzando desde 0.

Una tabla de numbers es una herramienta que vale la pena tener a mano para muchos propósitos. Puede inicializarlo así, por ejemplo:

 CREATE TABLE numbers (N int); /* #0 */ INSERT INTO numbers (N) SELECT 0; /* #1 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #2 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #3 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #4 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #5 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #6 */ INSERT INTO numbers (N) SELECT N + C FROM numbers, (SELECT COUNT(*) AS C FROM numbers); /* #… */ 

Cada línea # N da como resultado 2 N filas en la tabla, el número más grande es 2 N -1

Se puede encontrar una demostración del método (y jugar con) en SQL Fiddle .

Depende del nivel de detalles que desee. Si simplemente desea las dates de A hasta B, puede hacer esto:

 declare @start datetime set @start = '04/20/2012' while @start <getdate() begin print @start set @start = dateadd(dd,1,@start) end 

simplemente cambie la printing a una inserción en una table.

Si necesita más detalles, puede necesitar una secuencia de commands más elaborada. Puedo señalarte algunos, solo sé más específico sobre tus requisitos