:)
And here it is in SQL, should you want to use some FUNctions on the data.
Should work in most RDBMS's, as long as they support recursive CTEs. Just replace the initial string with your own. And remove or replace "FROM Dual" with whatever works in your RDBMS.
WITH
Levels(String)
AS
(
SELECT
'1-2 2011-11-15 07:42:33;2-3 2011-11-27 13:51:37;3-4 2011-12-0
+6 07:12:37;4-5 2011-12-09 15:28:52;5-6 2011-12-30 10:53:44;6-7 2012-0
+2-02 07:06:41;7-8 2012-03-20 06:36:12;8-9 2012-05-25 11:46:56;9-10 20
+12-08-14 06:04:53;10-11 2013-09-04 07:38:12;11-12 2014-03-26 06:30:49
+;12-13 2014-06-18 10:51:18;13-14 2014-11-13 14:14:53;14-15 2015-06-10
+ 09:12:30'
FROM
Dual
),
Split(Lvl, When, String)
AS
(
SELECT
SUBSTR(String, INSTR(String, '-') + 1, 2),
REPLACE(SUBSTR(String, INSTR(String, '-') + 03, 20), ';'),
REPLACE(SUBSTR(String, INSTR(String, '-') + 23), ';', ' ')
FROM
Levels
UNION ALL
SELECT
CAST(Split.Lvl + 1 AS VARCHAR2(2)),
SUBSTR(Split.String, INSTR(Split.String, '-') + 03, 20),
SUBSTR(Split.String, INSTR(Split.String, '-') + 23)
FROM
Split,
Levels
WHERE
Split.String IS NOT NULL
)
SELECT
Lvl,
When
FROM
Split;