PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak Trunc() działa w PostgreSQL

W PostgreSQL trunc() funkcja obcina liczbę.

Dokładniej, obcina liczbę do zera lub do określonej liczby miejsc dziesiętnych.

Składnia

trunc() funkcja może być używana na jeden z następujących sposobów:

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

Pierwsza składnia skraca liczbę do zera.

Druga składnia skraca go do określonej liczby miejsc dziesiętnych. W tym przypadku v to liczba, a s to liczba miejsc dziesiętnych.

Przykład pierwszej składni

Oto przykład, który używa pierwszej składni.

SELECT trunc(342.49);

Wynik:

342

Przykład drugiej składni

Oto przykład, który używa drugiej składni.

SELECT trunc(342.49, 1);

Wynik:

342.4

Dodawanie ułamków sekund

Oto przykład określenia liczby miejsc dziesiętnych, gdy liczba nie zawiera żadnego.

SELECT trunc(342, 3);

Wynik:

342.000

Liczby ujemne

Oto przykład z liczbą ujemną.

SELECT round(-4.5);

Wynik:

-5

Ujemne miejsca dziesiętne

Oto, co się dzieje, gdy drugi argument ma wartość ujemną.

SELECT trunc(342, -2);

Wynik:

300

Trunc() kontra Round()

W niektórych przypadkach trunc() funkcja może wydawać się działać w podobny sposób do round() . Ale są to zupełnie inne funkcje.

round() funkcja zaokrągla liczbę. Liczba jest zaokrąglana do najbliższej liczby całkowitej lub do określonej liczby miejsc dziesiętnych (w zależności od tego, czy podasz jeden argument, czy dwa argumenty).

trunc() z drugiej strony funkcja po prostu obcina liczbę do zera lub do określonego miejsca dziesiętnego. Żadne zaokrąglanie nie jest wykonywane.

Oto przykład pokazujący różnicę.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jsonb vs jsonb[] dla wielu adresów dla klienta

  2. Wielokrotne połączenie z bazą danych w Rails

  3. Błąd PostgreSQL:Fatal:nazwa użytkownika roli nie istnieje

  4. Funkcja Escape dla wyrażeń regularnych lub wzorców LIKE

  5. Wyszukiwanie pełnotekstowe w Postgresie czy CouchDB?