PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come funziona Trunc() in PostgreSQL

In PostgreSQL, il trunc() la funzione tronca un numero.

Più specificamente, tronca il numero verso lo zero o verso un numero specifico di cifre decimali.

Sintassi

Il trunc() la funzione può essere utilizzata in uno dei seguenti modi:

trunc(dp or numeric)
trunc(v numeric, s int)

La prima sintassi tronca il numero verso zero.

La seconda sintassi lo tronca a un numero specificato di cifre decimali. In questo caso, v è il numero e s è il numero di cifre decimali.

Esempio di prima sintassi

Ecco un esempio che utilizza la prima sintassi.

SELECT trunc(342.49);

Risultato:

342

Esempio di seconda sintassi

Ecco un esempio che utilizza la seconda sintassi.

SELECT trunc(342.49, 1);

Risultato:

342.4

Aggiunta di secondi frazionari

Ecco un esempio di come specificare un numero di cifre decimali quando il numero non ne include nessuna.

SELECT trunc(342, 3);

Risultato:

342.000

Numeri negativi

Ecco un esempio che utilizza un numero negativo.

SELECT round(-4.5);

Risultato:

-5

Punti decimali negativi

Ecco cosa succede quando il secondo argomento è un valore negativo.

SELECT trunc(342, -2);

Risultato:

300

Trunc() vs Round()

In alcuni casi, il trunc() potrebbe sembrare che funzioni in modo simile a round() . Ma sono funzioni abbastanza diverse.

Il round() la funzione arrotonda il numero. Il numero viene arrotondato all'intero più vicino o al numero specificato di cifre decimali (a seconda che gli venga assegnato un argomento o due).

Il trunc() la funzione d'altra parte tronca semplicemente il numero verso zero o alla cifra decimale specificata. Non viene eseguito alcun arrotondamento.

Ecco un esempio per dimostrare la differenza.

SELECT 
  round(342.49, 1),
  trunc(342.49, 1);

Risultato:

round | trunc
-------+-------
342.5 | 342.4