Switch to: V9V8V7V6V5

Numeric Functions

We name function to be numeric if it returns a numeric value. Even if function get string parameter(s), but returns a numeric value, we name it “numeric function”.

All numeric functions return NULL in case of an error.

ABS(X)

Returns the absolute value of the number X.

SELECT ABS(2);
=> 2
SELECT ABS(-32);
=> 32

CEILING(X)

CEIL(X)

Returns the smallest integer value not less than X.

SELECT CEILING(1.23);
=> 2
SELECT CEILING(-1.23);
=> -1

EXP(X)

Returns the value e (the base of natural algorithm), raised to the power of X.

SELECT EXP(2);
=> 7.389056
SELECT EXP(-2);
=> 0.135335

FLOOR(X)

Returns the largest integer value not greater than X.

SELECT FLOOR(1.23);
=> 1
SELECT FLOOR(-1.23);
=> -2

IsNormalized( Str )

[NEW in 4.9.1]

Returns TRUE if the given string is a normalized unicode string.

SELECT * FROM T WHERE IsNormalized(fld) = false;

See also:

LENGTH( str )

Returns the length in chars of the string str.

SELECT LENGTH('text');
=> 4

LN(X)

Returns the natural logarithm of X.

SELECT LN(2);
=> 0.693147
SELECT LN(-2);
=> NULL

LOG(B, X)

If called with one parameter, this function returns the natural logarithm of X.

SELECT LOG(2);
=> 0.693147
SELECT LOG(-2);
=> NULL

If called with two parameters, this function returns the logarithm of X for an arbitrary base B.

SELECT LOG(2,65536);
=> 16.000000
SELECT LOG(1,100);
=> NULL

LOG2(X)

Returns the base-2 logarithm of X.

SELECT LOG2(65536);
=> 16.000000
SELECT LOG2(-100);
=> NULL

LOG10(X)

Returns the base-10 logarithm of X.

SELECT LOG10(2);
> 0.301030
SELECT LOG10(100);
=> 2.000000
SELECT LOG10(-100);
=> NULL

MOD( N, M )

The same do: N % M

Modulo (like the % operator in C). Returns the remainder of N divided by M.

SELECT MOD(234, 10);
=> 4
SELECT 253 % 7;
=> 1
SELECT MOD(29,9);
=> 2

MURMURHASH(X)

New for v 5.0

Returns the “murmur” hash of the string X.

SELECT MURMURHASH('test');
=> 1026673864

ROUND( X [,D] )

Returns the argument X, rounded to the nearest integer. With two arguments, returns X rounded to D decimals. If D is negative, the integer part of the number is zeroed out. Pay attention, that return value type is always double.

SELECT ROUND(-1.23);		SELECT ROUND(-1.23,1);	
=> -1.000000		        => -1.200000
 
SELECT ROUND(-1.58);		SELECT ROUND(-1.586,2);
=> -2.000000			=> -1.590000
 
SELECT ROUND(1.58);		SELECT ROUND(1.589,1);
=> 2.000000			=>1.600000

POWER(X,Y)

Returns the value of X raised to the power of Y:

SELECT POW(2,2);
=> 4.000000
SELECT POW(2,-2);
=> 0.250000

SIGN(X)

Returns the sign of the argument as -1, 0, or 1, depending on whether X is negative, zero, or positive.

SELECT SIGN(-32);
=> -1
SELECT SIGN(0);
=> 0
SELECT SIGN(137);
=>1

SQRT(X)

Returns the non-negative square root of X.

SELECT SQRT(4);
=> 2.000000
SELECT SQRT(20);
=> 4.472136

SQUARE (X)

Returns the square of X.

SELECT SQUARE(2);
=> 4.000000
SELECT SQUARE(4.5);
=> 20.25

TRUNCATE(X,D)

TRUNC (X,D)

Returns the number X, truncated to D decimals. If D is 0, the result will have no fractional part. If D is negative, the integer part of the number is zeroed out. Pay attention, that return value type is always double.

SELECT TRUNCATE(1.223,1);
=> 1.200000
SELECT TRUNCATE(1.999,1);
=> 1.900000
SELECT TRUNCATE(1.999,0);
=> 1.000000
SELECT TRUNCATE(-1.999,1);
=> -1.900000

RAND() / RAND (N)

Returns the random value in 0-1 range.

If a constant integer argument N is specified, it is used as the seed value, which produces a repeatable sequence of column values.

SELECT RAND();
=> 0.486405
SELECT RAND(2);
=> 0.655587
SELECT RAND(2);
=> 0.655587

To obtain a random integer R in the range a ⇐ R < b, you can use the expression

FLOOR(a + RAND() * (b – a))

For example, to obtain a random integer in the range 15 ⇐ R < 20, you could use the following statement:

SELECT FLOOR(15 + (RAND() * 5));

Sleep(X)

Sleeps (pauses) for the number of seconds given by the X argument. Where the argument X is positive integer . Returns 1 if function was successfully completed, otherwise 0.

X - number of seconds

This function has the following restrictions: 1) The maximum sleep time is 10 minutes. If the received number is more than 10 minutes, it is reduced to 10 minutes. 2) Only admin can use it if he is in under server.

SELECT sleep(10)