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.