• Almost anything is possible, and certainly this is. Trouble is I can only think of a looping mechanism right now and they are slow, but if you do the thing infrequently or there are not a lot of records then no big deal, should be fine.

    Create Table Place (StartDate date not null, EndDate Date not null, Place varchar(5) not null)

    go

    Insert Into Place (StartDate, EndDate, PLace)

    Select '2012/01/10', '2012/01/13', 'ABC'

    Union ALL

    Select '2012/01/14', '2012/01/17', 'XYZ'

    go

    Create Table DateTable (DateO date, Place varchar(5), TimeO time)

    go

    --Take each record in, assign to parameters, then insert records for every date between the startdate and enddate.

    --then take next record

    -- basically a cursor (for each record in Place) and a while loop for each date between the start and end dates

    SET NOCOUNT ON

    DECLARE PlaceCur CURSOR READ_ONLY FOR Select StartDate, EndDate, Place from dbo.Place

    DECLARE @StartDate Date, @EndDate Date, @Place varchar(5)

    OPEN PlaceCur

    FETCH NEXT FROM PlaceCur INTO @StartDate, @EndDate, @Place

    WHILE (@@fetch_status <> -1)

    BEGIN

    IF (@@fetch_status <> -2)

    BEGIN

    WHILE @Startdate <= @EndDate

    BEGIN

    INSERT INTO DateTable (DateO, Place) Values(@StartDate, @Place)

    SET @StartDate = DateAdd(day,1,@StartDate)

    END

    END

    FETCH NEXT FROM PlaceCur INTO @StartDate, @EndDate, @Place

    END

    CLOSE PlaceCur

    DEALLOCATE PlaceCur

    GO

    Select * from datetable

    results just as you want, hope this helps.