使用SELECT语句查询分析存储映射表所支持的函数,包括时序函数、时间函数、聚合函数、数学函数和字符串函数等。
时序函数
函数 | 函数输出类型 | 描述 |
time_bin(_time,interval) | Datetime | 配合group by对时间进行分桶。例如 其中_time参数为时序时间列_time。interval参数为分桶的大小,类型为字符串。interval参数可以指定为不同时间单位,可以使用缩写。例如 |
tag_value_at(_tags,tag_key) | Varchar | 返回时序标签中指定key对应的value值。 _tags参数为时序标签列_tags,tag_key参数为_tags中的key。 |
时间函数
通过控制台使用时序分析存储功能时,输出的datetime类型值的时区为系统时区(中国为北京时间,即UTC+8
)。通过SDK使用时序分析存储功能时,输出的datetime类型值的时区会被转换为UTC时间,请根据业务需要进行时区转换。本文以北京时间,即UTC+8
时区为例介绍。
函数 | 函数输出类型 | 描述 |
from_unixtime(unix_timestamp) | Datetime | 将unix时间戳转换为Datetime类型并返回。unix时间戳会进行时区转化。例如 其中unix_timestamp参数为秒级别的unix时间戳。 |
from_unixtime(unix_timestamp,fsp) | Datetime | 将unix时间戳转换为Datetime类型,round到fsp位数后返回。unix时间戳会进行时区转化。例如 其中unix_timestamp参数为秒级别的unix时间戳。fsp参数为精度,最大值为6,如果fsp的值大于6,则会抛出异常;如果fsp的值小于0,则不进行round。 |
from_unixtime_millis(unix_timestamp_millis) | Datetime | 将unix时间戳转换为Datetime类型并返回。unix时间戳会进行时区转化。例如 其中unix_timestamp_millis参数为毫秒级别的unix时间戳。 |
from_unixtime_micros(unix_timestamp_micros) | Datetime | 将unix时间戳转换为Datetime类型并返回。unix时间戳会进行时区转化。例如 其中unix_timestamp_micros参数为微秒级别的unix时间戳。 |
unix_timestamp() | Double | 返回所在时区当前时间的秒级别unix时间戳。 |
unix_timestamp_millis() | Double | 返回所在时区当前时间毫秒级unix时间戳。精度为秒。例如 该函数等价于 重要 该函数返回的时间戳位数到毫秒,但精度为秒,而非毫秒。 |
unix_timestamp_millis(datetime) | Double | 返回datetime所在时区的毫秒级unix时间戳。 其中datetime参数为Datetime类型的时间。 |
unix_timestamp_millis(datestr) | Double | 返回datestr所在时区对应日期的毫秒级unix时间戳。例如 其中datestr参数为时间字符串,必须明确指定年月日。取值范围为 重要
|
unix_timestamp_micros() | Double | 返回所在时区当前时间微秒级unix时间戳。精度为秒。例如 该函数等价于 重要 该函数返回的时间戳位数到微秒,但精度为秒,而非微秒。 |
unix_timestamp_micros(datetime) | Double | 返回datetime所在时区的微秒级unix时间戳。 其中datetime参数为Datetime类型的时间。 |
unix_timestamp_micros(datestr) | Double | 返回datestr所在时区对应日期的微秒级unix时间戳。例如 其中datestr参数为时间字符串,必须明确指定年月日。取值范围为 重要
|
timediff(expr1,expr2) | Time | 计算expr1与expr2的差值。 其中expr参数的类型可以为Datetime类型、Time类型和字符串类型。 |
addtime(expr1,expr2) | 与expr1相同 | 计算expr1与expr2的和。 其中expr1参数的类型可以为Datetime类型和Time类型,expr2参数的类型只能为Time类型。 |
date(datetime) | Date | 返回datetime的日期部分。 其中datetime参数为Datetime类型的时间。 |
hour(expr) | BigInt | 返回expr的小时部分。 其中expr参数的类型可以为Datetime类型和Time类型。 |
minute(expr) | BigInt | 返回expr的分钟部分。 其中expr参数的类型可以为Datetime类型和Time类型。 |
second(expr) | BigInt | 返回expr的秒部分。 其中expr参数的类型可以为Datetime类型和ime类型。 |
microsecond(expr) | BigInt | 返回expr的微秒部分。 其中expr参数的类型可以为Datetime类型和Time类型。 |
month(expr) | BigInt | 返回expr的月份部分。 其中expr参数的类型可以为Datetime类型和Date类型。 |
year(expr) | BigInt | 返回expr的年部分。 其中expr参数的类型可以为Datetime类型和Date类型。 |
week(expr) | BigInt | 返回expr日期是本年的第几周。 其中expr参数的类型可以为Datetime类型和Date类型。 |
week(expr,mode) | BigInt | 返回expr日期根据指定mode计算是本年的第几周。 其中expr参数的类型可以为Datetime类型和Date类型。mode参数取值范围如下所示(兼容MySQL)。 |
weekday(expr) | BigInt | 返回一个日期的星期索引值。返回值为0表示星期一,1表示星期二,以此类推,6表示星期日。 其中expr参数可以为Datetime类型和Date类型。 |
weekofyear(expr) | BigInt | 返回一个日期所在的周数。其取值范围为1到53。WEEKOFYEAR等价于WEEK(date,3), expr参数的类型可以为datetime类型和date类型。 |
dayofmonth(expr) | BigInt | 函数返回一个日期的日份。返回值的范围为1到31。 其中expr参数的类型可以为Datetime类型和Date类型。 |
dayofweek(expr) | BigInt | 返回一个日期的星期索引值。返回值为1表示星期日,2表示星期一,以此类推,7表示星期六。 其中expr参数的类型可以为Datetime类型和Date类型。 |
dayofyear(expr) | BigInt | 返回一个日期在当年中的第几天。返回值的范围为1到366。 其中expr参数的类型可以为Datetime类型和Date类型。 |
monthname(expr) | Varchar | 返回expr日期的月份全名。 其中expr参数的类型可以为Datetime类型和Date类型。 |
dayname(expr) | Varchar | 返回expr日期在星期中的全名。 其中expr参数的类型可以为Datetime类型和Date类型。 |
聚合函数
函数 | 函数输出类型 | 描述 |
count(expr) | Bigint | 返回SELECT语句检索的行中非NULL值的数量。结果为一个Bigint值。 |
sum(expr) | 返回类型与expr类型一致 | 返回expr字段的和。 如果查询结果为空,则返回NULL。 |
avg(expr) | Double | 返回expr字段的平均值。 如果查询结果为空,则返回NULL。 |
min(expr) | 返回类型与expr类型一致 | 返回expr字段的最小值。 如果expr为字符串,则输出为字典序最小字符串。 |
max(expr) | 返回类型与expr类型一致 | 返回expr字段的最大值。 如果expr为字符串,则输出为字典序最大字符串 |
max_by(expr1,expr2) | 返回类型与expr1类型一致 | 返回与expr2最大值关联的expr1的值,即expr2最大值所在行expr1的值。 当expr2所关联的expr1为NULL时,输出NULL。expr1与expr2均可为字符串。 |
min_by(expr1,expr2) | 返回类型与expr1类型一致 | 返回与expr2最小值关联的expr1的值,即expr2最小值所在行expr1的值。 当expr2所关联的expr1为NULL时,输出NULL。expr1与expr2均可为字符串。 |
bit_and(expr) | Bigint | 返回expr字段进行按位与运算的结果。 如果查询结果为空,则返回所有位均为1的64位整数。 |
bit_or(expr) | Bigint | 返回expr字段进行按位或运算的结果。 如果查询结果为空,则返回所有位均为0的64位整数。 |
bit_xor(expr) | Bigint | 返回expr字段进行按位异或运算的结果。 如果查询结果为空,则返回所有位均为0的64位整数。 |
std(expr) | Double | 返回expr字段的总体标准差。std、stddev和stddev_pop为三个同名函数,三者等价。 如果查询结果为空,则返回NULL。 |
stddev(expr) | Double | |
stddev_pop(expr) | Double | |
stddev_samp(expr) | Double | 返回expr字段的样本标准差。 如果查询结果为空,则返回NULL。 |
var_pop(expr) | Double | 返回expr字段的总体方差。 var_pop和variance为两个同名函数,两者等价。 如果查询结果为空,则返回NULL。 |
variance(expr) | Double | |
var_samp(expr) | Double | 返回expr字段的样本方差。 如果查询结果为空,则返回NULL。 |
数学函数
函数 | 函数输出类型 | 描述 |
mod(x,y) | 和x类型相同 | 返回x除以y的余数。 如果y为0,则返回0。 |
abs(x) | 和x类型相同 | 返回x的绝对值。 |
ceil(x) | 和x类型相同 | 返回不小于x的最小整数值,即向上取整。 |
floor(x) | 和x类型相同 | 返回不大于x的最小整数值,即向下取整。 |
round(x) | 和x类型相同 | 返回x四舍五入后的整数值。 |
round(x,y) | 和x类型相同 | 返回x四舍五入到小数点后y位的值。 |
acos(x) | Double | 返回x的反余弦值,即 如果x的取值不在-1到1的范围内,则返回NULL。 |
asin(x) | Double | 返回x的反正弦值,即 如果x的取值不在-1到1的范围内,则返回NULL。 |
atan(x) | Double | 返回x的反正切值,即 |
atan2(x,y) | Double | 返回两个变量x和y的反正切,这与计算 |
cos(x) | Double | 返回x的余弦值。x值以radians格式表示。 |
sin(x) | Double | 返回x的正弦值。x值以radians格式表示。 |
tan(x) | Double | 返回x的正切值。x值以radians格式表示。 |
exp(x) | Double | 返回e(自然对数的基数)的x次方的值。 |
pow(x,y) | Double | 返回x的y次方的值。 |
radians(x) | Double | 返回从度数转换为弧度的参数x。 重要 π弧度等于180度。 |
sqrt(x) | Double | 返回x的平方根。 |
sign(x) | Bigint | 根据x为负数、零或者正数,将参数的符号返回为-1、0或1。 |
pi() | Double | 返回Pi值,即圆周率π的值。 |
ln(x) | Double | 返回x的自然对数,即x以e为底的对数。 如果x小于或等于0,则返回NULL。 |
log2(x) | Double | 返回x以2为底的对数。 如果x小于或等于 |
log10(x) | Double | 返回x以10为底的对数。 如果x小于或等于 |
字符串函数
函数 | 函数输出类型 | 描述 |
length(str) | Bigint | 返回字符串以字节计算的长度。 |
concat(str1,str2...) | Varchar | 返回字符串合并的结果。支持输入多个字符串。 |
to_base64(str) | Varchar | 返回对str进行base64编码后的字符串。 |
hex(str) | Bigint | 返回str的十六进制字符串表示,其中str中每个字符的每个字节均转换为两个十六进制数字。 |
hex(str) | Varchar | 返回x的十六进制字符串表示。例如 |
instr(str1,substr) | Bigint | 返回substr在字符串str中首次出现的位置。 |
lower(str) | Varchar | 返回str的小写。 |
ltrim(str) | Varchar | 返回str去除头部空格后的字符串。 |
lpad(str,len,padstr) | Varchar | 用padstr在str的左侧填充,将其长度填充为len,返回这个填充后的字符串。 如果str的长度大于len值,则返回值会被截断为len个字符。例如 |
rtrim(str) | Varchar | 返回str去除尾部空格后的字符串。 |
rpad(str,len,padstr) | Varchar | 用padstr在str的右侧填充,将其长度填充为len,返回这个填充后的字符串。 如果str的值大于len的值,则返回值会被截断为len个字符。 |
trim(str,len,padstr) | Varchar | 返回str去除头部和尾部空格后的字符串。 |
substr(str,pos1,pos2) | Varchar | 从str第pos1个字符开始,截取之后pos2个字符作为返回的字符串。 如果函数中未设置pos2参数,则从第pos1个字符开始截取之后所有字符作为返回的字符串。 |
replace(str,from_str,to_str) | Varchar | 返回将str中所有的from_str替换为to_str后的字符串。在搜索from_str时会区分大小写。 |
reverse(str) | Varchar | 返回str反转后的结果。 |
upper(str) | Varchar | 返回str的大写。 |