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'