使用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的大寫。 |
