Funzioni CAST implicite per le operazioni aritmetiche

Questa sezione elenca le funzioni CAST implicite disponibili per le operazioni aritmetiche.

Generalmente, gli operatori aritmetici (+, -, * e /) vengono utilizzati su operandi dello stesso tipo e restituiscono un valore dello stesso tipo di dati degli operandi. Nella tabella riportata di seguito sono riportati i casi in cui gli operandi possono essere di tipi di dati diversi oppure in cui il tipo di dati del valore risultante è diverso dal tipo degli operandi.

La tabella riportata di seguito elenca le funzioni CAST implicite per l'operazione aritmetica.
Tipo di dati dell'operando di sinistra Tipo di dati dell'operando di destra Operatori supportati Tipo di dati del risultato
INTEGER FLOAT +, -, *, / FLOAT1
INTEGER DECIMAL +, -, *, / DECIMAL1
INTEGER INTERVAL * INTERVAL4
FLOAT INTEGER +, -, *, / FLOAT1
FLOAT DECIMAL +, -, *, / FLOAT1
FLOAT INTERVAL * INTERVAL4
DECIMAL INTEGER +, -, *, / DECIMAL1
DECIMAL FLOAT +, -, *, / FLOAT1
DECIMAL INTERVAL * INTERVAL4
TIME TIME - INTERVAL2
TIME GMTTIME - INTERVAL2
TIME INTERVAL +, - TIME3
GMTTIME TIME - INTERVAL2
GMTTIME GMTTIME - INTERVAL2
GMTTIME INTERVAL +, - GMTTIME3
DATE DATE - INTERVAL2
DATE INTERVAL +, - DATE3
TIMESTAMP TIMESTAMP - INTERVAL2
TIMESTAMP GMTTIMESTAMP - INTERVAL2
TIMESTAMP INTERVAL +, - TIMESTAMP3
GMTTIMESTAMP TIMESTAMP - INTERVAL2
GMTTIMESTAMP GMTTIMESTAMP - INTERVAL2
GMTTIMESTAMP INTERVAL +, - GMTTIMESTAMP3
INTERVAL INTEGER *, / INTERVAL4
INTERVAL FLOAT *, / INTERVAL4
INTERVAL DECIMAL *, / INTERVAL4
INTERVAL TIME + TIME3
INTERVAL GMTTIME + GMTTIME3
INTERVAL DATE + DATE3
INTERVAL TIMESTAMP + TIMESTAMP3
INTERVAL GMTTIMESTAMP + GMTTIMESTAMP3
Note:
  1. L'operando che non corrisponde al tipo di dati del risultato viene assegnato al tipo di dati del risultato prima che l'operazione venga eseguita. Ad esempio, se l'operando di sinistra di un operatore di addizione è un INTEGER e l'operando di destra è un FLOAT, l'operando di sinistra viene assegnato ad un FLOAT prima che venga eseguita l'operazione di addizione.
  2. Se si sottrae un valore (GMT)TIME da un valore (GMT)TIME, un valore DATE da un valore DATE oppure un valore (GMT)TIMESTAMP da un valore (GMT)TIMESTAMP, il risultato è un valore INTERVAL che rappresenta l'intervallo di tempo tra i due operandi.
  3. Se si aggiunge o sottrae un INTERVAL da un valore (GMT)TIME, DATE o (GMT)TIMESTAMP, il risultato è un nuovo valore del tipo di dati dell'operando non-INTERVAL, che rappresenta il momento rappresentato dal valore non-INTERVAL originario più o meno l'intervallo di tempo rappresentato da INTERVAL.
  4. Se si moltiplica o divide un INTERVAL per un valore INTEGER, FLOAT o DECIMAL, il risultato è un nuovo INTERVAL che rappresenta l'intervallo di tempo rappresentato dal valore originario moltiplicato o diviso per il fattore rappresentato dall'operando non-INTERVAL. Ad esempio, un valore INTERVAL di 2 ore e 16 minuti moltiplicato per un valore FLOAT di 2.5 ha come risultato un nuovo valore INTERVAL di 5 ore e 40 minuti. I calcoli intermedi coinvolti nella moltiplicazione o nella divisione del valore INTERVAL originario vengono eseguiti nel tipo di dati del valore non-INTERVAL, ma i campi singoli di INTERVAL (ad esempio, HOUR, YEAR e così via) sono sempre integrali, per cui potrebbero verificarsi alcuni errori di arrotondamento.
Concetti correlati
Panoramica di ESQL
Attività correlate
Sviluppo di ESQL
Riferimenti correlati
Funzioni ESQL complesse
Assegnazioni implicite
Funzioni CAST implicite per i confronti
Funzioni CAST implicite per l'assegnazione
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak05710_