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: