ciao
non ho capito come dividere la data????
comunque il tuo problema mi sembra molto semplice....( o forse non ho capito la domanda)
io farei cosi
select
tabella.key,
'1' tipo,
tabella.data_inizio,
tabella.data_fine
from tabella
union
select
tabella.key,
'2' tipo,
tabella.data_inizio,
tabella.data_fine
from tabella
where tabella.data_fine is not null
ciao