sql >> Database >  >> RDS >> PostgreSQL

Hoe Trunc() werkt in PostgreSQL

In PostgreSQL is de trunc() functie kapt een getal af.

Meer specifiek wordt het getal afgekapt naar nul of naar een bepaald aantal decimalen.

Syntaxis

De trunc() functie kan op een van de volgende manieren worden gebruikt:

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

De eerste syntaxis kapt het getal af richting nul.

De tweede syntaxis kapt het af tot een bepaald aantal decimalen. In dit geval v is het nummer, en s is het aantal decimalen.

Voorbeeld van eerste syntaxis

Hier is een voorbeeld dat de eerste syntaxis gebruikt.

SELECT trunc(342.49); 

Resultaat:

342

Voorbeeld van tweede syntaxis

Hier is een voorbeeld dat de tweede syntaxis gebruikt.

SELECT trunc(342.49, 1); 

Resultaat:

342.4

Fractionele seconden toevoegen

Hier is een voorbeeld van het specificeren van een aantal decimalen wanneer het nummer er geen bevat.

SELECT trunc(342, 3); 

Resultaat:

342.000

Negatieve getallen

Hier is een voorbeeld dat een negatief getal gebruikt.

SELECT round(-4.5); 

Resultaat:

-5

Negatieve decimalen

Dit is wat er gebeurt als het tweede argument een negatieve waarde is.

SELECT trunc(342, -2); 

Resultaat:

300

Trunc() vs Round()

In sommige gevallen kan de trunc() functie lijkt op een vergelijkbare manier te werken als round() . Maar het zijn nogal verschillende functies.

De round() functie rondt het getal af. Het getal wordt afgerond op het dichtstbijzijnde gehele getal of op het opgegeven aantal decimalen (afhankelijk van of je het één argument of twee argumenten geeft).

De trunc() functie daarentegen kapt het getal eenvoudig af naar nul of naar de opgegeven decimale plaats. Er wordt niet afgerond.

Hier is een voorbeeld om het verschil aan te tonen.

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

Resultaat:

ronde | trunc-------+-------342.5 | 342,4
  1. Prestatieverrassingen en aannames:STRING_SPLIT()

  2. Probleemset 1 - Entiteiten identificeren

  3. Een lijst met gegevenstypen retourneren in SQL Server (T-SQL)

  4. Pas op voor misleidende gegevens van SET STATISTICS IO