In MariaDB ABS()
ist eine eingebaute numerische Funktion, die den absoluten (nicht negativen) Wert ihres Arguments zurückgibt.
Syntax
Die Syntax lautet wie folgt:
ABS(X)
Wobei X
ist die betreffende Nummer. Wenn X
keine Zahl ist, wird sie in einen numerischen Typ umgewandelt.
Beispiel
Hier ist ein Beispiel:
SELECT ABS(300);
Ergebnis:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Dasselbe Ergebnis erhalten wir, wenn die Zahl negativ ist:
SELECT ABS(-300);
Ergebnis:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Nicht numerisches Argument
Wenn das Argument keine Zahl ist, wird es in einen numerischen Typ umgewandelt.
Beispiel:
SELECT ABS(DATE '2020-12-10');
Ergebnis:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
Dies hängt jedoch vom Argument/Kontext ab.
Folgendes passiert, wenn ich das DATE
weglasse Stichwort:
SELECT ABS('2020-12-10');
Ergebnis:
+-------------------+ | ABS('2020-12-10') | +-------------------+ | 2020 | +-------------------+ 1 row in set, 1 warning (0.000 sec)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Fehlendes Argument
Aufruf von ABS()
ohne Argument führt zu einem Fehler:
SELECT ABS();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'