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

Come funziona FLOOR() in MariaDB

In MariaDB, FLOOR() è una funzione numerica incorporata che restituisce il valore intero più grande non maggiore del suo argomento.

Sintassi

La sintassi è questa:

FLOOR(X)

Dove X è il valore a cui applicare l'operazione.

Esempio

Ecco un esempio:

SELECT FLOOR(3.6789);

Risultato:

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

Il passaggio di un valore negativo produce il seguente risultato:

SELECT FLOOR(-3.6789);

Risultato:

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

Rispetto a ROUND()

Il FLOOR() la funzione è diversa da ROUND() funzione. Il ROUND() funzione arrotonda il numero per eccesso in alcuni casi e per difetto in altri. Il FLOOR() la funzione, d'altra parte, restituisce sempre il valore intero più grande non maggiore del suo argomento.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Risultato:

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

Inoltre, ROUND() ci consente di specificare il numero di cifre decimali da arrotondare a:

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

Risultato:

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

FLOOR() è anche diverso da TRUNCATE() funzione, che semplicemente tronca il numero a una determinata cifra decimale.

Argomenti non numerici

Ecco cosa succede quando forniamo un argomento non numerico:

SELECT FLOOR('Ten');

Risultato:

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

Controlliamo l'avviso:

SHOW WARNINGS;

Risultato:

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

Argomenti mancanti

Chiamando FLOOR() senza un argomento genera un errore:

SELECT FLOOR();

Risultato:

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