sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB FLOOR() vs TRUNCATE()

MariaDB har en FLOOR() funktion og en TRUNCATE() funktion, der kan returnere de samme resultater eller forskellige resultater, afhængigt af den nøjagtige værdi af deres argumenter.

Nedenfor er en hurtig gennemgang af forskellen mellem FLOOR() og TRUNCATE() i MariaDB.

Forskellen

Her er forskellen mellem hver funktion i en nøddeskal:

  • FLOOR() returnerer den største heltalværdi, der ikke er større end dens argument.
  • TRUNCATE() afkorter sit argument til et bestemt antal decimaler.

Syntaks

For det første er her syntakserne for hver funktion.

FLOOR()

Syntaksen for FLOOR() går sådan her:

FLOOR(X)

Det returnerer den største heltalværdi, der ikke er større end X .

TRUNCATE()

Syntaksen for TRUNCATE() går sådan her:

TRUNCATE(X,D)

TRUNCATE() returnerer tallet X , afkortet til D decimaler.

Eksempel

Her er en sammenligning for at demonstrere forskellen mellem FLOOR() og TRUNCATE() :

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

Resultat:

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

I dette tilfælde er tallet en negativ værdi, og resultatet fra hver funktion er forskelligt.

  • FLOOR() returnerede det største heltal (-4 ) værdi ikke større end dens argument.
  • TRUNCATE() funktion på den anden side blot afkortede tallet med den angivne decimal.

Samme resultat

Begge funktioner kan nogle gange returnere det samme resultat. Det hele afhænger af værdien af ​​de argumenter, der sendes.

Hvis vi ændrer tallene til positive værdier, returnerer begge funktioner det samme resultat:

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

Resultat:

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

Det andet argument

En anden åbenlys forskel mellem de to funktioner er, at TRUNCATE() accepterer/kræver et andet argument. Dette kan resultere i et resultat, der indeholder en brøkdel.

FLOOR() returnerer dog kun et heltal, så ingen brøkdel returneres nogensinde.

Eksempel

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

Resultat:

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

ROUND() Funktion

Begge funktioner er forskellige fra ROUND() funktion, som afrunder sit argument til et bestemt antal decimaler.


  1. Hvordan pakkes PL SQL-kode i Oracle?

  2. 8 WP-CLI-kommandoer til at rydde op og optimere dit websted

  3. Find de kolonner, der returneres af en funktion med tabelværdi (T-SQL-eksempler)

  4. Venstre og højre forbinder ved hjælp af plus (+)-log på Oracle