Functions available in SQL statements

Functions available in SQL statements

Mathematical functions

function name Purpose parameter Returned value
abs Absolute value Operand absolute value
cos Cosine Operand Cosine value
cosh Hyperbolic cosine Operand Hyperbolic cosine value
acos Inverse cosine Operand Inverse cosine value
acosh Inverse hyperbolic cosine Operand Inverse hyperbolic cosine value
sin Sine Operand Sine value
sinh Hyperbolic sine Operand Hyperbolic sine value
asin Arcsine Operand Arcsine value
asinh inverse hyperbolic sine Operand inverse hyperbolic sine value
tan tangent Operand tangent value
tanh Hyperbolic tangent Operand Hyperbolic tangent value
atan Arc tangent Operand Arc tangent value
atanh Inverse hyperbolic tangent Operand Inverse hyperbolic tangent value
ceil Round up Operand Integer value
floor Round down Operand Integer value
round rounding Operand Integer value
exp Exponentiation Operand X power of e
power Exponential operation 1. Left operand x
2. Right operand y Y power of X
sqrt Square root operation Operand Square root
fmod Floating point modulus function 1. left Operand
2.right Operand module
log Logarithm to e Operand value
log10 Logarithm to 10 Operand value
log2 Logarithm to 2 Operand value
abs(-12) = 12
cos(1.5) = 0.0707372016677029
cosh(1.5) = 2.352409615243247
acos(0.0707372016677029) = 1.5
acosh(2.352409615243247) = 1.5
sin(0.5) = 0.479425538604203
sinh(0.5) = 0.5210953054937474
asin(0.479425538604203) = 0.5
asinh(0.5210953054937474) = 0.5
tan(1.4) = 5.797883715482887
tanh(1.4) = 0.8853516482022625
atan(5.797883715482887) = 1.4
atanh(0.8853516482022625) = 1.4000000000000001
ceil(1.34) = 2
floor(1.34) = 1
round(1.34) = 1
round(1.54) = 2
exp(10) = 22026.465794806718
power(2, 10) = 1024
sqrt(2) = 1.4142135623730951
fmod(-32, 5) = -2
log10(1000) = 3
log2(1024) = 10

Data type judgment function

Function name Purpose parameter Returned value
is_null Judge if the variable is null Data Boolean data.if it is empty (undefined), return true, otherwise return false
is_not_null Judge if the variable is not null Data Boolean data.if it is empty (undefined), return false, otherwise return true
is_str Judge whether the variable is String type Data Boolean data.
is_bool Judge if the variable is Boolean type Data Boolean data.
is_int Judge whether the variable is Integer type Data Boolean data.
is_float Judge whether the variable is Float type Data Boolean data.
is_num Judge whether the variable is a numeric type, including Integer and Float types Data Boolean data.
is_map Judge whether the variable is Map type Data Boolean data.
is_array Judge whether the variable is Array type Data Boolean data.
is_null(undefined) = true
is_not_null(1) = true
is_str(1) = false
is_str('val') = true
is_bool(true) = true
is_int(1) = true
is_float(1) = false
is_float(1.234) = true
is_num(2.3) = true
is_num('val') = false

Data type conversion function

function name purpose parameter returned value
str Convert data to String type Data Data of type String. Failure to convert will cause SQL matching to fail
str_utf8 Convert data to UTF-8 String type Data UTF-8 String type data. Failure to convert will cause SQL matching to fail
bool Convert data to Boolean type Data Boolean data. Failure to convert will cause SQL matching to fail
int Convert data to integer type Data Integer type data. Failure to convert will cause SQL matching to fail
float Convert data to floating type Data Floating type data. Failure to convert will cause SQL matching to fail
float2str Convert a float to string using the given precision 1. Float Number 2. Precision String
map Convert data to Map type Data Map type data. Failure to convert will cause SQL matching to fail
str(1234) = '1234'
str_utf8(1234) = '1234'
bool('true') = true
int('1234') = 1234
float('3.14') = 3.14
float2str(20.2, 10) = '20.2'
float2str(20.2, 17) = '20.19999999999999928'

String functions

Function name Purpose parameter returned value
lower convert to lowercase input string Lowercase string
upper convert to uppercase input string uppercase string
trim Remove left and right space input string output string
ltrim Remove the left space input string output string
rtrim Remove the right space input string output string
reverse String inversion input string output string
strlen string length input string Integer value
substr Take a substring of characters 1. input string
2. Start position. Note: Subscripts start at 1 substring
substring Take a substring of characters 1. input string
2. Start position
3. End position. Note: Subscripts start at 1 substring
split String splitting 1. input string
2. split string Split string array
split String splitting 1. input string
2. split string
3. Find the first separator on the left or right, optional value is ‘leading’ or ‘trailing’ Split string array
split split string 1. input string
2. split string
3. Find the first separator on the left or right, optional value is ‘leading’ or ‘trailing’ Split string array
lower('AbC') = 'abc'
lower('abc') = 'abc'

upper('AbC') = 'ABC'` `lower('ABC') = 'ABC'

trim(' hello  ') = 'hello'

ltrim(' hello  ') = 'hello  '

rtrim(' hello  ') = ' hello'

reverse('hello') = 'olleh'

strlen('hello') = 5

substr('abcdef', 2) = 'cdef'
substr('abcdef', 2, 3) = 'cde'

split('a/b/ c', '/') = ['a', 'b', ' c']
split('a/b/ c', '/', 'leading') = ['a', 'b/ c']
split('a/b/ c', '/', 'trailing') = ['a/b', ' c']

Map function

function name purpose parameter returned value
map_get Take the value of a Key in the Map, or return a null value if failed 1. Key
2. Map The value of a Key in the Map. Support nested keys, such as “a.b.c”
map_get Take the value of a Key in the Map, if failed, return the specified default value 1. Key
2. Map
3. Default Value The value of a Key in the Map. Support nested keys, such as “a.b.c”
map_put Insert value into Map 1. Key
2. Value
3. Map The inserted Map. Support nested keys, such as “a.b.c”
map_get('a', json_decode( '{ "a" : 1 }' )) = 1
map_get('b', json_decode( '{ "a" : 1 }' ), 2) = 2
map_get('a', map_put('a', 2, json_decode( '{ "a" : 1 }' ))) = 2

Array function

function name purpose parameter returned value
nth Take the nth element, and subscripts start at 1 Original array Nth element
length Get the length of an array Original array the length of an array
sublist Take a sub-array of length len starting from the first element. Subscripts start at 1 1. length len
2. Original array sub-array
sublist Take a sub-array of length len starting from the nth element. Subscripts start at 1 1. start position n
2. length len
3. Original array sub-array
first Take the first element. Subscripts start at 1 Original array 1st element
last take the last element Original array the last element
contains Determine whether the data is in the array 1. data
2. Original array Boolean value
nth(2, [1,2,3,4]) = 2
length([1,2,3,4]) = 4
sublist(3, [1,2,3,4]) = [1,2,3,4]
sublist(1,2,[1,2,3,4]) = [1, 2]
first([1,2,3,4]) = 1
last([1,2,3,4]) = 4
contains(2, [1,2,3,4]) = true

Hash function

function name purpose parameter returned value
md5 evaluate MD5 data MD5 value
sha evaluate SHA data SHA value
sha256 evaluate SHA256 data SHA256 value
md5('some val') = '1b68352b3e9c2de52ffd322e30bffcc4'
sha('some val') = 'f85ba28ff5ea84a0cbfa118319acb0c5e58ee2b9'
sha256('some val') = '67f97635d8a0e064f60ba6e8846a0ac0be664f18f0c1dc6445cd3542d2b71993'

Compresses and Uncompresses functions

Function Purpose Parameters Returned value
gzip Compresses data with gz headers and checksum. Raw binary data Compressed binary data
gunzip Uncompresses data with gz headers and checksum. Compressed binary data Raw binary data
zip Compresses data without zlib headers and checksum. Raw binary data Compressed binary data
unzip Uncompresses data without zlib headers and checksum. Compressed binary data Raw binary data
zip_compress Compresses data with zlib headers and checksum. Raw binary data Compressed binary data
zip_uncompress Uncompresses data with zlib headers and checksum. Compressed binary data Raw binary data
bin2hexstr(gzip('hello world')) = '1F8B0800000000000003CB48CDC9C95728CF2FCA49010085114A0D0B000000'
gunzip(hexstr2bin('1F8B0800000000000003CB48CDC9C95728CF2FCA49010085114A0D0B000000')) = 'hello world'

bin2hexstr(zip('hello world')) = 'CB48CDC9C95728CF2FCA490100'
unzip(hexstr2bin('CB48CDC9C95728CF2FCA490100')) = 'hello world'

bin2hexstr(zip_compress('hello world')) = '789CCB48CDC9C95728CF2FCA4901001A0B045D'
zip_uncompress(hexstr2bin('789CCB48CDC9C95728CF2FCA4901001A0B045D')) = 'hello world'

Bit functions

Function Purpose Parameters Returned value
subbits Get a given length of bits from the beginning of a binary, and then convert it to an unsigned integer (big-endian). 1. The binary
2. The length of bits to get The unsigned integer
subbits Get a given length of bits start from the specified offset of a binary, and then convert it to an unsigned integer (big-endian). Offsets are start from 1. 1. The binary
2. The offset
3. The length of bits to get The unsigned integer
subbits Get a given length of bits start from the specified offset of a binary, and then convert it to a data type according to the arguments provided. Offsets are start from 1. 1. The binary
2. The offset
3. The length of bits to get
4. Data Type, can be one of ‘integer’, ‘float’, ‘bits’
5. Signedness, only works for integers, can be one of ‘unsigned’, ‘signed’,
6. Endianness, only works for integers, can be one of ‘big’, ‘little’ The data got from the binary
subbits('abc', 8) = 97
subbits('abc', 9, 8) = 98
subbits('abc', 17, 8) = 99
subbits('abc', 9, 16, 'integer', 'signed', 'big') = 25187
subbits('abc', 9, 16, 'integer', 'signed', 'little') = 25442

Decoding and encoding functions

Function Purpose Parameters Returned value
base64_encode BASE64 encode The binary to be encoded The encoded base64-formatted string
base64_decode BASE64 decode The base64-formatted string to be decoded The decoded binary
json_encode JSON encode The data to be encoded The JSON string
json_decode JSON decode The JSON string to be decoded The decoded data
bin2hexstr Binary to Hex String The binary The hex string
hexstr2bin Binary to Hex String The hex string The binary
base64_encode('some val') = 'c29tZSB2YWw='
base64_decode('c29tZSB2YWw=') = 'some val'
json_encode(json_decode( '{ "a" : 1 }' )) = '{"a":1}'
bin2hexstr(hexstr2bin('ABEF123')) = 'ABEF123'

Time and date functions

Function Purpose Parameters Returned value
now_timestamp Return the unix epoch of now in second - The unix epoch
now_timestamp Return the unix epoch of now, in given time unit 1. The time unit The unix epoch
now_rfc3339 Create a RFC3339 time string of now in second - The time string of format RFC3339
now_rfc3339 Create a RFC3339 time string of now, in given time unit 1. The time unit The time string of format RFC3339
unix_ts_to_rfc3339 Convert an unix epoch (in second) to RFC3339 time string 1. The unix epoch in second The time string of format RFC3339
unix_ts_to_rfc3339 Convert an unix epoch to RFC3339 time string, using the given time unit 1. The unix epoch
2. The time unit The time string of format RFC3339
rfc3339_to_unix_ts Convert a RFC3339 time string (in second) to unix epoch 1. The time string of format RFC3339 The unix epoch
rfc3339_to_unix_ts Convert a RFC3339 time string to unix epoch, using the given time unit 1. The time string of format RFC3339
2. The time unit The unix epoch
format_date Timestamp to formatted time 1. The time unit (refer to The time unit)
2. The time offset (refer to time offset definition)
3. The date format (refer to time string codec format)
4. The timestamp (optional parameter, default is current time) Formatted time
date_to_unix_ts Formatted time to timestamp 1. The time unit (refer to the following table for definition)
2. The time offset (optional, when not filled, use the time offset in the formatted time string, refer to the time offset definition)
3. The date format (refer to time string codec format)
4. The formatted time string The unix epoch

The time unit

Name Precision Example
second second 1653557821
millisecond millisecond 1653557852982
microsecond microsecond 1653557892926417
nanosecond nanosecond 1653557916474793000

Time string format

Placeholder Definition Range
%Y year 0000 - 9999
%m month 01 - 12
%d day 01 - 31
%H hour 00 - 12
%M minute 00 - 59
%S second 01 - 59
%N nanosecond 000000000 - 999999999
%3N millisecond 000000 - 999999
%6N microsecond 000 - 000
%z time offset [+ -]HHMM
%:z time offset [+ -]HH:MM
%::z time offset [+ -]HH:MM:SS

The time offset

Offset Definition Examples
z UTC Zulu Time +00:00
Z UTC Zulu Time. Same as z +00:00
local System Time Automatic
Beijing +08:00
Zulu +00:00
Stockholm, Sweden +02:00
Los Angeles -08:00
[+|-]HHMM %z Beijing +0800
Zulu +0000
Stockholm, Sweden +0200
Los Angeles -0800
[+|-]HH:MM %:z Beijing +08:00
Zulu +00:00
Stockholm, Sweden +02:00
Los Angeles -08:00
[+|-]HH:MM:SS %::z Beijing +08:00:00
Zulu +00:00:00
Stockholm, Sweden +02:00:00
Los Angeles -08:00:00
integer() Seconds Beijing 28800
Zulu 0
Stockholm, Sweden 7200
Los Angeles -28800
now_timestamp() = 1650874276
now_timestamp('millisecond') = 1650874318331
now_rfc3339() = '2022-04-25T16:08:41+08:00'
now_rfc3339('millisecond') = '2022-04-25T16:10:10.652+08:00'
unix_ts_to_rfc3339(1650874276) = '2022-04-25T16:11:16+08:00'
unix_ts_to_rfc3339(1650874318331, 'millisecond') = '2022-04-25T16:11:58.331+08:00'
rfc3339_to_unix_ts('2022-04-25T16:11:16+08:00') = 1650874276
rfc3339_to_unix_ts('2022-04-25T16:11:58.331+08:00', 'millisecond') = 1650874318331
format_date('second', '+0800', '%Y-%m-%d %H:%M:%S%:z', 1653561612) = '2022-05-26 18:40:12+08:00'
format_date('second', 'local', '%Y-%m-%d %H:%M:%S%:z') = "2022-05-26 18:48:01+08:00"
format_date('second', 0, '%Y-%m-%d %H:%M:%S%:z') = '2022-05-26 10:42:41+00:00'
date_to_unix_ts('second', '%Y-%m-%d %H:%M:%S%:z', '2022-05-26 18:40:12+08:00') = 1653561612
date_to_unix_ts('second', 'local', '%Y-%m-%d %H-%M-%S', '2022-05-26 18:40:12') = 1653561612
date_to_unix_ts('second', '%Y-%m-%d %H-%M-%S', '2022-05-26 10:40:12') = 1653561612