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