MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB FLOOR() срещу TRUNCATE()

MariaDB има FLOOR() функция и TRUNCATE() функция, която може да връща едни и същи резултати или различни резултати, в зависимост от точната стойност на техните аргументи.

По-долу е даден кратък преглед на разликата между FLOOR() и TRUNCATE() в MariaDB.

Разликата

Ето разликата между всяка функция накратко:

  • FLOOR() връща най-голямата целочислена стойност, не по-голяма от неговия аргумент.
  • TRUNCATE() съкращава аргумента си до определен брой десетични знака.

Синтаксис

Първо, ето синтаксиса на всяка функция.

FLOOR()

Синтаксисът за FLOOR() става така:

FLOOR(X)

Връща най-голямата целочислена стойност, не по-голяма от X .

TRUNCATE()

Синтаксисът за TRUNCATE() става така:

TRUNCATE(X,D)

TRUNCATE() връща числото X , съкратено до D десетични знаци.

Пример

Ето сравнение, за да демонстрирате разликата между FLOOR() и TRUNCATE() :

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

Резултат:

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

В този случай числото е отрицателна стойност и резултатът от всяка функция е различен.

  • FLOOR() върна най-голямото цяло число (-4 ) стойност не по-голяма от неговия аргумент.
  • TRUNCATE() функция от друга страна, просто отрязва числото на посочения десетичен знак.

Същият резултат

И двете функции понякога могат да върнат един и същ резултат. Всичко зависи от стойността на предаваните аргументи.

Ако променим числата на положителни стойности, и двете функции връщат един и същ резултат:

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

Резултат:

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

Вторият аргумент

Друга очевидна разлика между двете функции е, че TRUNCATE() приема/изисква втори аргумент. Това може да доведе до резултат, който съдържа дробна част.

FLOOR() обаче връща само цяло число, така че никога не се връща дробна част.

Пример

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

Резултат:

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

ROUND() Функция

И двете функции са различни от ROUND() функция, която закръгля аргумента си до определен брой десетични знака.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конфигурирате SELinux за системи, базирани на MySQL (MySQL/MariaDB репликация + Galera)

  2. MariaDB 10.6 и NextCloud:COMPRESSED Редът е само за четене по подразбиране

  3. Стимулиране на производителността в хибридна облачна настройка

  4. 4 функции за връщане на годината от дата в MariaDB

  5. Съвети за мигриране от MySQL репликация към MySQL Galera Cluster 4.0