sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer FLOOR() i MariaDB

I MariaDB, FLOOR() er en indbygget numerisk funktion, der returnerer den største heltalværdi, der ikke er større end dens argument.

Syntaks

Syntaksen ser sådan ud:

FLOOR(X)

Hvor X er værdien, som handlingen skal anvendes på.

Eksempel

Her er et eksempel:

SELECT FLOOR(3.6789);

Resultat:

+---------------+
| FLOOR(3.6789) |
+---------------+
|             3 |
+---------------+

Hvis du sender en negativ værdi, får du følgende resultat:

SELECT FLOOR(-3.6789);

Resultat:

+----------------+
| FLOOR(-3.6789) |
+----------------+
|             -4 |
+----------------+

Sammenlignet med ROUND()

FLOOR() funktionen er forskellig fra ROUND() fungere. ROUND() funktion ville runde tallet op i nogle tilfælde og ned i andre. FLOOR() funktion returnerer på den anden side altid den største heltalværdi, der ikke er større end dens argument.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Resultat:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Også ROUND() giver os mulighed for at angive antallet af decimaler, der skal afrundes til:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789, 2);

Resultat:

+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
|             3 |             3.68 |
+---------------+------------------+

FLOOR() er også forskellig fra TRUNCATE() funktion, som blot afkorter tallet til en given decimal.

Ikke-numeriske argumenter

Her er, hvad der sker, når vi giver et ikke-numerisk argument:

SELECT FLOOR('Ten');

Resultat:

+--------------+
| FLOOR('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.000 sec)

Lad os tjekke advarslen:

SHOW WARNINGS;

Resultat:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Manglende argumenter

Kalder FLOOR() uden et argument resulterer i en fejl:

SELECT FLOOR();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'

  1. Migrering af MySQL til PostgreSQL på AWS RDS, del 1

  2. Basering af databasemodeller i virkeligheden:En bloggers udfordring

  3. utl_file.fopen Parametre i Oracle

  4. Hvad er forskellen mellem Scope_Identity(), Identity(), @@Identity og Ident_Current()?