MariaDBでは、FLOOR() は、引数以下の最大の整数値を返す組み込みの数値関数です。
構文
構文は次のようになります:
FLOOR(X)
ここでX 操作を適用する値です。
例
次に例を示します:
SELECT FLOOR(3.6789); 結果:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
負の値を渡すと、次の結果が生成されます。
SELECT FLOOR(-3.6789); 結果:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
ROUND()との比較
FLOOR() 関数はROUND()とは異なります 働き。 ROUND() 関数は、ある場合には数値を切り上げ、他の場合には切り下げます。 FLOOR() 一方、関数は常に引数以下の最大の整数値を返します。
SELECT
FLOOR(3.6789),
ROUND(3.6789); 結果:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
また、ROUND() 四捨五入する小数点以下の桁数を指定できます:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2); 結果:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR() TRUNCATE()とも異なります 関数。数値を小数点以下の桁数に切り捨てるだけです。
非数値引数
数値以外の引数を指定すると、次のようになります。
SELECT FLOOR('Ten'); 結果:
+--------------+
| FLOOR('Ten') |
+--------------+
| 0 |
+--------------+
1 row in set, 1 warning (0.000 sec) 警告を確認しましょう:
SHOW WARNINGS; 結果:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
引数がありません
FLOOR()を呼び出す 引数がないとエラーになります:
SELECT FLOOR(); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'