Expressões de Intervalo
Uma expressão de intervalo produz um valor de INTERVAL
YEAR
TO
MONTH
ou INTERVAL
DAY
TO
SECOND
.
expressão_intervalo::=
Descrição da expressão_intervalo.gif da ilustração.gif
As expressões expr1
e expr2
podem ser quaisquer expressões que avaliam a valores de tipo de dado DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
, ou TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Tempos e intervalos podem ser combinados de acordo com as regras definidas na Tabela 2-5. As seis combinações que produzem valores de intervalo são válidas em uma expressão de intervalo.
Both leading_field_precision
e fractional_second_precision
podem ser qualquer número inteiro de 0 a 9. Se você omitir o leading_field_precision
para DAY
ou YEAR
, então o Banco de Dados Oracle usa o valor padrão de 2. Se você omitir o fractional_second_precision
para o segundo, então o banco de dados usa o valor padrão de 6. Se o valor retornado por uma consulta contém mais dígitos que a precisão padrão, então o Banco de Dados Oracle retorna um erro. Portanto, é boa prática especificar uma precisão que você sabe que será pelo menos tão grande quanto qualquer valor retornado pela consulta.
Por exemplo, a seguinte instrução subtrai o valor da coluna order_date
na tabela de exemplo orders
(um valor de data/hora) do carimbo de tempo do sistema (outro valor de data/hora) para produzir uma expressão de valor de intervalo. Não se sabe há quantos dias foi colocado o pedido mais antigo, portanto o valor máximo de 9 para a precisão do campo de carga DAY
é especificado:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;