sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur Trunc() fungerar i PostgreSQL

I PostgreSQL, trunc() funktion trunkerar ett tal.

Närmare bestämt trunkeras talet antingen mot noll eller till ett visst antal decimaler.

Syntax

trunc() funktionen kan användas på något av följande sätt:

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

Den första syntaxen trunkerar talet mot noll.

Den andra syntaxen trunkerar den till ett specificerat antal decimaler. I det här fallet, v är numret och s är antalet decimaler.

Exempel på första syntax

Här är ett exempel som använder den första syntaxen.

SELECT trunc(342.49); 

Resultat:

342

Exempel på andra syntax

Här är ett exempel som använder den andra syntaxen.

SELECT trunc(342.49, 1); 

Resultat:

342.4

Lägga till bråkdelar

Här är ett exempel på hur du anger ett antal decimaler när talet inte inkluderar några.

SELECT trunc(342, 3); 

Resultat:

342 000

Negativa tal

Här är ett exempel som använder ett negativt tal.

SELECT round(-4.5); 

Resultat:

-5

Negativa decimaler

Här är vad som händer när det andra argumentet är ett negativt värde.

SELECT trunc(342, -2); 

Resultat:

300

Trunc() vs Round()

I vissa fall används trunc() funktion kan tyckas fungera på liknande sätt som round() . Men det är ganska olika funktioner.

round() funktion rundar talet. Talet avrundas till närmaste heltal eller till det angivna antalet decimaler (beroende på om du ger det ett argument eller två argument).

trunc() funktion å andra sidan trunkerar helt enkelt talet mot noll eller till den angivna decimalen. Ingen avrundning utförs.

Här är ett exempel för att visa skillnaden.

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

Resultat:

omgång | trunc-------+-------342,5 | 342.4
  1. MySQL DELETE FROM med subquery som villkor

  2. Importera shapefiler i postgresql i linux med pgadmin 4

  3. Hämta föregående och nästa rad från rader valda med (WHERE) villkor

  4. MySQL InnoDB Cluster 8.0 - En komplett implementeringsgenomgång:del ett