Hola
Ya he conseguido que me guarde miliseguntos.
El tipo de campo debe ser timestamp(x) siendo x el número de digitos que quieres mostrar. Y en lugar de hacer un sysdate para que te de la hora, la función a utilizar es systimestamp.
Para leer no es con doble ss sino con ff.
SELECT TO_CHAR(systimestamp, 'DD/MM/YYYY HH24:MI:SS.FF3') from dual;
Para lo del horario de verano e invierno no tengo solución de momento, así que si alguien sabe como..., que lo comparta
Gracias