I MariaDB, FLOOR() är en inbyggd numerisk funktion som returnerar det största heltalsvärdet som inte är större än dess argument.
Syntax
Syntaxen ser ut så här:
FLOOR(X)
Där X är värdet att tillämpa operationen på.
Exempel
Här är ett exempel:
SELECT FLOOR(3.6789); Resultat:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Att skicka ett negativt värde ger följande resultat:
SELECT FLOOR(-3.6789); Resultat:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Jämfört med ROUND()
FLOOR() funktionen skiljer sig från ROUND() fungera. ROUND() funktion skulle avrunda talet uppåt i vissa fall och nedåt i andra. FLOOR() funktion, å andra sidan, returnerar alltid det största heltalsvärdet som inte är större än dess argument.
SELECT
FLOOR(3.6789),
ROUND(3.6789); Resultat:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Även ROUND() tillåter oss att ange antalet decimaler som ska avrundas till:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2); Resultat:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR() skiljer sig också från TRUNCATE() funktion, som helt enkelt trunkerar talet till en given decimal.
Icke-numeriska argument
Det här är vad som händer när vi tillhandahåller ett icke-numeriskt argument:
SELECT FLOOR('Ten'); Resultat:
+--------------+
| FLOOR('Ten') |
+--------------+
| 0 |
+--------------+
1 row in set, 1 warning (0.000 sec) Låt oss kolla varningen:
SHOW WARNINGS; Resultat:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argument saknas
Anropar FLOOR() utan argument resulterar i ett fel:
SELECT FLOOR(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'