sql >> Databáze >  >> RDS >> MariaDB

MariaDB FLOOR() vs. TRUNCATE()

MariaDB má FLOOR() funkce a TRUNCATE() funkce, která může vracet stejné nebo různé výsledky v závislosti na přesné hodnotě jejich argumentů.

Níže je stručný přehled rozdílů mezi FLOOR() a TRUNCATE() v MariaDB.

Rozdíl

Zde je v kostce rozdíl mezi jednotlivými funkcemi:

  • FLOOR() vrátí největší celočíselnou hodnotu, která není větší než jeho argument.
  • TRUNCATE() zkrátí svůj argument na zadaný počet desetinných míst.

Syntaxe

Za prvé, zde jsou syntaxe každé funkce.

FLOOR()

Syntaxe pro FLOOR() vypadá takto:

FLOOR(X)

Vrací největší celočíselnou hodnotu ne větší než X .

TRUNCATE()

Syntaxe pro TRUNCATE() vypadá takto:

TRUNCATE(X,D)

TRUNCATE() vrátí číslo X , zkráceno na D desetinná místa.

Příklad

Zde je srovnání, které demonstruje rozdíl mezi FLOOR() a TRUNCATE() :

SELECT 
    FLOOR(-3.6789),
    TRUNCATE(-3.6789, 0);

Výsledek:

+----------------+----------------------+
| FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) |
+----------------+----------------------+
|             -4 |                   -3 |
+----------------+----------------------+

V tomto případě je číslo záporná hodnota a výsledek každé funkce je jiný.

  • FLOOR() vrátilo největší celé číslo (-4 ) hodnota není větší než jeho argument.
  • TRUNCATE() funkce na druhé straně jednoduše zkrátila číslo na zadaném desetinném místě.

Stejný výsledek

Obě funkce mohou někdy vrátit stejný výsledek. Vše závisí na hodnotě předávaných argumentů.

Pokud změníme čísla na kladné hodnoty, obě funkce vrátí stejný výsledek:

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 0);

Výsledek:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 0) |
+---------------+---------------------+
|             3 |                   3 |
+---------------+---------------------+

Druhý argument

Dalším zřejmým rozdílem mezi těmito dvěma funkcemi je to, že TRUNCATE() přijímá/vyžaduje druhý argument. Výsledkem může být výsledek, který obsahuje zlomkovou část.

FLOOR() nicméně vrací pouze celé číslo, takže není nikdy vrácena žádná zlomková část.

Příklad

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

Výsledek:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 2) |
+---------------+---------------------+
|             3 |                3.67 |
+---------------+---------------------+

ROUND() Funkce

Obě funkce se liší od ROUND() funkce, která zaokrouhlí svůj argument na zadaný počet desetinných míst.


  1. Pomocí sp_help_jobschedule v SQL Server

  2. Nejlepší nové funkce Oracle 12c

  3. Vytvoření propojeného serveru v SQL Server (příklad T-SQL)

  4. Úvod do západek