Como armar un rango de fechas en una tabla temporal en SQL

Este es un truco que utilizo para mostrar datos por fechas, donde no tenia registro para una fecha dentro del rango. Así, que ¿como mostrar las variaciones entre esas dos fechas?.

Primero crear una tabla temporal, con las fechas y luego un left join con nuestra tabla de datos. Así seria el script:

CREATE PROCEDURE sp_sel_DameVistasEntreFechas   
    @FechaInicio DateTime,
    @FechaCierre DateTime
AS
BEGIN
    SET NOCOUNT ON;
 
    -- Tabla temporal con las fechas de inicio y cierre
    CREATE TABLE #Temp(
                        Fecha datetime
                        )
    DECLARE @date DATETIME   
    SET @date = @FechaInicio
    WHILE @date < @FechaCierre + 1
    BEGIN
        INSERT INTO #Temp
        VALUES(@date)
        SET @date = dateadd(day, 1, @date)
    END
    Select  miTabla.* , #Temp.Fecha
    from  #Temp
    LEFT JOIN miTabla
    ON #Temp.Fecha = miTabla.Fecha
END

Espero que lo usen

Un Abrazo

11 Comments

Comments have been disabled for this content.