ALTER SESSION SET NLS_LANGUAGE=english; -- First day of week
SELECT
-- Last Sunday of October at 02:00
NEXT_DAY(LAST_DAY(TO_DATE(TO_CHAR('01/10/'
|| (EXTRACT(YEAR FROM SYSDATE)-5 + level) || '02:00:00'),
'DD/MM/YYYY HH24:MI:SS')) - INTERVAL '7' DAY, 'SUNDAY') AS H_WINTER,
-- Last Sunday of March at 02:00 (missing hour)
NEXT_DAY(LAST_DAY(TO_DATE(TO_CHAR('01/03/'
|| (EXTRACT(YEAR FROM SYSDATE)-5 + level) || '02:00:00'),
'DD/MM/YYYY HH24:MI:SS')) - INTERVAL '7' DAY, 'SUNDAY') AS H_SUMMER
FROM DUAL CONNECT BY level <=10;