W MariaDB, FLOOR()
jest wbudowaną funkcją numeryczną, która zwraca największą liczbę całkowitą nie większą niż jej argument.
Składnia
Składnia wygląda tak:
FLOOR(X)
Gdzie X
jest wartością, na której ma zostać zastosowana operacja.
Przykład
Oto przykład:
SELECT FLOOR(3.6789);
Wynik:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Przekazanie wartości ujemnej daje następujący wynik:
SELECT FLOOR(-3.6789);
Wynik:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
W porównaniu z ROUND()
FLOOR()
funkcja jest inna niż ROUND()
funkcjonować. ROUND()
funkcja zaokrągla liczbę w górę w niektórych przypadkach, aw innych w dół. FLOOR()
z drugiej strony funkcja zawsze zwraca największą liczbę całkowitą nie większą niż jej argument.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Wynik:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Również ROUND()
pozwala nam określić liczbę miejsc po przecinku do zaokrąglenia:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Wynik:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
różni się także od TRUNCATE()
funkcja, która po prostu obcina liczbę do podanego miejsca dziesiętnego.
Argumenty nieliczbowe
Oto, co się dzieje, gdy dostarczamy argument nieliczbowy:
SELECT FLOOR('Ten');
Wynik:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Sprawdźmy ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Brakujące argumenty
Wywołanie FLOOR()
bez argumentu powoduje błąd:
SELECT FLOOR();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'