Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Tipi Monetari
PrecedenteTipi di DatoTipi CarattereSuccessivo

8.2. Tipi Monetari

Il tipo money memorizza un ammontare di valuta con una precisione frazionaria fissa; vedere la Tabella 8.3, «Tipi Monetari». La precisione frazionale è determinata dalle impostazioni del database lc_monetary. L'intervallo mostrato nella tabella assume che ci siano 2 cifre frazionali. Il valore di input è accettato in vari formati, inclusi interi e a virgola-mobile, così come tipica formattazione monetaria, come '$1,000.00'. L'output è generalmente nell'ultima forma ma dipende dalla localizzazione.

Tabella 8.3. Tipi Monetari

NomeDimenzioneDescrizioneEstensione
money8 byteammontare monetario-92233720368547758.08 to +92233720368547758.07

Dato che questo tipo dato è sensibile alla localizzazione, potrebbe non funzionare il caricamento di dati money in un database che ha un'impostazione diversa di lc_monetary. Per evitare problemi, prima di ripristinare un dump bisogna assicurarsi che lc_monetary abbia lo stesso valore, o un equivalente, di quello che aveva il database da ripristinare.

Valori di tipo numeric posso essere convertiti a money. Altri tipi numerici posso essere convertiti a money eseguendo prima un cast a numeric, per esempio:

SELECT 1234::numeric::money;

Un valore money può eseguire un cast di un numeric senza perdita di precisione. La conversione ad altri tipi potrebbe potenzialmente perdere precisione, e deve essere fatta in 2 passi, per esempio:

SELECT '52093.89'::money::numeric::float8;

Quando un valore money è diviso da un altro valore money, il risultato è double precision (un numero puro, non un valore monetario); le unità di valuta si cancellano a vicenda nella divisione.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Tipi Monetari
PrecedenteTipi di DatoTipi CarattereSuccessivo