Restando fechas en Oracle - Número o tipo de datos de intervalo?

Tengo una pregunta sobre algunos de los trabajos internos para los tipos de datos DATE e INTERVAL de Oracle. De acuerdo con laOracle 11.2 Referencia SQL, cuando resta 2 tipos de datos DATE, el resultado será un tipo de datos NUMBER.

En las pruebas superficiales, esto parece ser cierto:

CREATE TABLE test (start_date DATE);
INSERT INTO test (start_date) VALUES (date'2004-08-08');
SELECT (SYSDATE - start_date) from test;

devolverá un tipo de datos NUMBER.

Pero ahora si lo haces:

SELECT (SYSDATE - start_date) DAY(5) TO SECOND from test;

obtienes un tipo de datos INTERVALO. En otras palabras, Oracle puede convertir el NÚMERO de la resta FECHA en un tipo INTERVALO.

Así que ahora pensé que podría intentar poner un tipo de datos NUMBER directamente entre paréntesis (en lugar de hacer 'SYSDATE - start_date' que de todos modos da como resultado un NUMBER):

SELECT (1242.12423) DAY(5) TO SECOND from test;

Pero esto da como resultado el error:

ORA-30083: syntax error was found in interval value expression

Entonces mi pregunta es: ¿qué está pasando aquí? Parece que restar fechas debería conducir a un NÚMERO (como se demuestra en la instrucción SELECT # 1), que NO PUEDE convertirse automáticamente al tipo INTERVALO (como se demuestra en la declaración SELECT # 3). Pero Oracle parece ser capaz de hacer eso de alguna manera si usa la expresión de resta DATE en lugar de poner un NÚMERO sin procesar (instrucción SELECT # 2).

Gracia

Respuestas a la pregunta(8)

Su respuesta a la pregunta