Expresiones de intervalo
Una expresión de intervalo produce un valor de INTERVAL
YEAR
TO
MONTH
o INTERVAL
DAY
TO
SECOND
.
expresión_de_intervalo::=
Descripción de la ilustración expresión_de_intervalo.gif
Las expresiones expr1
y expr2
pueden ser cualquier expresión que se evalúe a valores del tipo de datos DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
, o TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Los tiempos e intervalos pueden combinarse según las reglas definidas en la Tabla 2-5. Las seis combinaciones que producen valores de intervalo son válidas en una expresión de intervalo.
Tanto leading_field_precision
como fractional_second_precision
pueden ser cualquier número entero de 0 a 9. Si se omite el leading_field_precision
para DAY
o YEAR
, entonces Oracle Database utiliza el valor por defecto de 2. Si se omite el fractional_second_precision
para el segundo, entonces la base de datos utiliza el valor por defecto de 6. Si el valor devuelto por una consulta contiene más dígitos que la precisión por defecto, entonces Oracle Database devuelve un error. Por lo tanto, es una buena práctica especificar una precisión que sepa que será al menos tan grande como cualquier valor devuelto por la consulta.
Por ejemplo, la siguiente sentencia resta el valor de la columna order_date
de la tabla de ejemplo orders
(un valor de fecha y hora) de la marca de tiempo del sistema (otro valor de fecha y hora) para obtener una expresión de valor de intervalo. No se sabe cuántos días hace que se realizó el pedido más antiguo, por lo que se especifica el valor máximo de 9 para la precisión del campo de carga DAY
:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;