sql >> データベース >  >> RDS >> MariaDB

MariaDBでのFLOOR()のしくみ

    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'

    1. MySQLエラー1436:単純なクエリでスレッドスタックがオーバーランしました

    2. PostgreSQLの日付から日を取得する

    3. SQLサーバーのdoubleを表すものは何ですか?

    4. Postgresql更新時の現在のタイムスタンプ