You need to enable JavaScript to run this app.
导航
8.7.5.1 MySQL/ElasticSearch 支持的函数
最近更新时间:2022.09.05 11:25:41首次发布时间:2022.09.05 11:25:41
我的收藏
有用
有用
无用
无用

Unified Functions
函数调用可以使用函数的名字,也可以使用函数的别名。
由于:1. Hana数据集支持的函数为Hana函数,暂未与Unified Function兼容;2. HBase数据集支持的函数比较特殊。因此下表仅列列举MySQL和ElasticSearch与Unified Functions的兼容性,Hana以及HBase支持的函数在下述章节单独列举。
MySQL/ElasticSearch 支持的函数
聚合函数

TopicNameDescriptionAliasMySQLElasticSearch
聚合函数sumSUM(column): 对某列进行求和支持支持
聚合函数countCOUNT(column): 计算行数/n COUNT(DISTINCT column): 计算去重后的行数支持支持
聚合函数maxMAX(column): 计算某列的最大值支持支持
聚合函数minMIN(column): 计算某列的最小值支持支持
聚合函数avgAVG(column): 计算某列的平均值支持支持
聚合函数uniquniq(c1): 聚合函数,估算去重后的行数,类似 COUNT(DISTINCT c1), 但是采用估算算法(如果有的引擎不支持估算,则等于COUNT(DISTINCT c1))支持支持
聚合函数sumifsumIf(c1, bool_expression): 聚合函数, 计算满足 bool_expression 表达式 的c1列的加和支持不支持
聚合函数countifcountIf(c1, bool_expression): 聚合函数, 计算满足 bool_expression 表达式 的c1列的行数支持不支持
聚合函数avgifavgIf(c1, bool_expression): 聚合函数, 计算满足 bool_expression 表达式 的c1列的平均值支持不支持
聚合函数any_valueany_value(c1): 聚合函数, 获取分组里c1中的任意一行支持不支持
聚合函数stddev_popstddev_pop(c1): 聚合函数,统计总体标准差stddev、stddevpop支持不支持
聚合函数stddev_sampstddev_samp(c1): 聚合函数,统计样本标准差stddevsamp支持不支持
聚合函数var_popvar_pop(c1): 聚合函数,统计总体方差varsamp支持不支持
聚合函数var_sampvar_samp(c1): 聚合函数,统计样本方差varsamp支持不支持

日期函数

TopicNameDescriptionAliasMySQLElasticSearch
日期函数dateDATE(column): 将column转化为date类型。如果column为字符串,需要格式是yyyy-MM-dd。 无法转换,则返回NULL支持支持
日期函数adddateaddDate(date, INTERVAL n DAY/WEEK/MONTH/QUARTER/YEAR/HOUR/MINUTE/SECOND): 将日期date加上n个时间区间。 n可以为负数date_add支持支持
日期函数datediffdateDiff(startDate, endDate): 计算startDate -> endDate之间相隔的天数, 注意和mysql语义不一致, 此处语义是 dateDiff(startDate, endDate) = endDate-startDate, mysql则是反之daydiff支持支持
日期函数weekdiffweekDiff(startDate, endDate): 计算startDate -> endDate之间相隔的周数,按周1是一周的第一天计算支持支持
日期函数monthdiffmonthDiff(startDate, endDate): 计算startDate -> endDate之间相隔的月数支持支持
日期函数quarterdiffquarterDiff(startDate, endDate): 计算startDate -> endDate之间相隔的季度数支持不支持
日期函数yeardiffyearDiff(startDate, endDate): 计算startDate -> endDate之间相隔的年数支持不支持
日期函数unix_timestampunix_timestamp(datetime): 返回datetime对应的timestamp, 使用引擎服务端的时区tounixtimestamp支持支持
日期函数from_unixtimefrom_unixtime(timestamp): 将timestamp转化成datetime支持支持
日期函数nownow(): 返回当前日期和时间,类型是datetime支持支持
日期函数current_datecurrent_date(): 返回当前日期,类型是datecurdate、today支持支持
日期函数yesterdayyesterday(): 返回昨天的日期,类型是date支持不支持
日期函数subdatesubdate(date, INTERVAL n DAY/WEEK/MONTH/QUARTER/YEAR/HOUR/MINUTE/SECOND): 将日期date减去n个时间区间。date_sub支持支持
日期函数adddaysaddDays(date, n): 将日期date加上n天。 n可以为负数支持支持
日期函数addmonthsaddMonths(date, n): 将日期date加上n月。 n可以为负数支持支持
日期函数addweeksaddWeeks(date, n): 将日期date加上n周。 n可以为负数支持不支持
日期函数addquartersaddQuarters(date, n): 将日期date加上n个季度。 n可以为负数支持不支持
日期函数addYearsaddYears(date, n): 将日期date加上n年。 n可以为负数支持不支持
日期函数addHoursaddHours(datetime, n): 将日期时间datetime加上n小时。 n可以为负数支持不支持
日期函数addMinutesaddMinutes(datetime, n): 将日期时间date加上n分钟。 n可以为负数支持不支持
日期函数addSecondsaddSeconds(datetime, n): 将日期时间date加上n秒。 n可以为负数支持不支持
日期函数subtractdayssubtractDays(date, n): 将日期date减去n天。 n可以为负数支持不支持
日期函数subtractweekssubtractWeeks(date, n): 将日期date减去n周。 n可以为负数支持不支持
日期函数subtractmonthssubtractMonths(date, n): 将日期date减去n月。 n可以为负数支持不支持
日期函数subtractquarterssubtractQuarters(date, n): 将日期date减去n个季度。 n可以为负数支持不支持
日期函数subtractYearssubtractYears(date, n): 将日期date减去n年。 n可以为负数支持不支持
日期函数subtractHourssubtractHours(datetime, n): 将日期时间datetime减去n小时。 n可以为负数支持不支持
日期函数subtractMinutessubtractMinutes(datetime, n): 将日期时间datetime减去n分钟。 n可以为负数支持不支持
日期函数subtractSecondssubtractSeconds(datetime, n): 将日期时间datetime减去n秒。 n可以为负数支持不支持
日期函数yearyear(datetime date string): 返回日期或时间戳字符串的年份,类型是Inttoyear支持不支持
日期函数quarterquarter(datetime date string): 返回日期或时间戳字符串的季度,类型是Inttoquarter支持不支持
日期函数monthmonth(datetime date string): 返回日期或时间戳字符串的月份,类型是Inttomonth支持不支持
日期函数weekweek(datetime date string, [,mode]): 返回日期或时间戳字符串的周数,类型是Int. mode语义参见mysql week函数,支持0-7,不填则默认为0toweek支持不支持
日期函数dayday(datetime date string): 返回日期或时间戳字符串的天,类型是Int, 别名: DAYOFMONTHdayofmonth、todayofmonth支持不支持
日期函数dayofweekdayOfWeek(datetime date string): 返回日期或时间戳字符串在一周中的天数,类型是Inttodayofweek支持不支持
日期函数dayofyeardayOfYear(datetime date string): 返回日期或时间戳字符串在一年中的天数,类型是Inttodayofyear支持不支持
日期函数hourhour(datetime string): 返回日期或时间戳字符串的小时,类型是Inttohour支持支持
日期函数minuteminute(datetime date string): 返回日期或时间戳字符串的分钟,类型是Inttominute支持不支持
日期函数secondsecond(datetime date string): 返回日期或时间戳字符串的秒数,类型是Inttosecond支持不支持
日期函数last_daylast_day(data datetime string): 返回日期所属月份的最后一天,类型是Date。例如: last_day('2020-01-13') = '2020-01-31'支持支持
日期函数tomondaytoMonday(date or datetime, day_of_week): 将Date或DateTime向前取整到本周的星期一。 返回Date类型。支持不支持
日期函数torelativeyearnumtoRelativeYearNum(date datetime string): 返回从过去固定时间点到日期的年数支持不支持
日期函数torelativemonthnumtoRelativeMonthNum(date datetime string): 返回从过去固定时间点到日期的月份数支持不支持
日期函数torelativeweeknumtoRelativeWeekNum(date datetime string): 返回从过去固定时间点到日期的周数支持不支持
日期函数torelativedaynumtoRelativeDayNum(date datetime string): 返回从过去固定时间点到日期的天数支持不支持
日期函数date_formatdate_format(data datetime string, string): 根据给定的格式字符串格式化时间。注意:格式是一个常量表达式,具体标识符支持%Y、%y、%m、%d、%e、%H、%I、%i、%S和%%,语义和mysql保持一致。formatDateTime支持不支持
日期函数str_to_datestr_to_date(string, string):将字符串按照格式字符串提取日期。支持不支持
日期函数str_to_datetimestr_to_datetime(string, string):将字符串按照格式字符串提取日期时间。支持不支持
日期函数toyyyymmtoYYYYMM(date or datetime): 将日期转成yyyyMM, 返回类型是int。例如toYYYYMM('2020-01-01') = 202001)支持支持
日期函数toStartOfYeartoStartOfYear(date or datetime): 将日期向下取整到年, 返回类型是date。支持支持
日期函数toStartOfMonthtoStartOfMonth(date or datetime): 将日期向下取整到月, 返回类型是date。支持支持
日期函数toStartOfWeektoStartOfWeek(date or datetime): 将日期向下取整到星期一支持不支持
日期函数toStartOfDaytoStartOfDay(date or datetime): 将日期向下取整到天, 返回类型是datetime。支持支持
日期函数toStartOfHourtoStartOfHour(date or datetime): 将日期向下取整到小时, 返回类型是datetime。支持支持
日期函数toStartOfMinutetoStartOfMinute(date or datetime): 将日期向下取整到分钟, 返回类型是datetime。支持支持
日期函数toStartOfFiveMinutetoStartOfFiveMinute(date or datetime): 将日期向下取整到五分钟, 返回类型是datetime。支持支持
日期函数toStartOfTenMinutestoStartOfTenMinutes(date or datetime): 将日期向下取整到十分钟, 返回类型是datetime。支持支持
日期函数toStartOfFifteenMinutestoStartOfFifteenMinutes(date or datetime): 将日期向下取整到十五分钟, 返回类型是datetime。支持支持
日期函数toStartOfIntervaltoStartOfInterval(date or datetime, INTERVAL n SECOND/MINUTE/HOUR/DAY/WEEK/MONTH/YEAR): toStartOfXX系列函数的通用版本,如toStartOfInterval(t, INTERVAL 1 year)等价于toStartOfYear(t)支持不支持
日期函数timeSlottimeSlot(date or datetime): 将日期向下取整到半小时, 返回类型是datetime。支持不支持

Number 函数

TopicNameDescriptionAliasMySQLElasticSearch
Number函数floorFLOOR(number, [digits]): 对某列向下取整, 如果传了digits, 则表示保留digits位小数,向下取最大数, 例如: FLOOR(1.99, 1) = 1.9支持支持
Number函数ceilCEIL(number, [digits]): 对某列向上取整, 如果传了digits, 表示保留digits位小数,向上取最小数。例如: CEIL(1.91, 1) = 2.0ceiling支持支持
Number函数roundROUND(number, [digits]): 对某列四舍五入。如果传了digits,表示保留digits位小数并进行四舍五入支持支持
Number函数greatestGREATEST(c1, c2...): 计算c1, c2的最大值。支持支持
Number函数randRAND(): 返回一个随机整数random支持支持
Number函数absabs(number): 给 number 的绝对值支持支持
Number函数expexp(n): 计算 e 的n次方, e为自然底数,大约是2.718281支持支持
Number函数leastleast(c1, c2...): 计算c1, c2的最小值。支持支持
Number函数modMOD(a, b): 计算 a % b的值,8 % 3 = 2, 3.1 % 2 = 1.1, -3.1 % 2 = -1.1modulo支持支持
Number函数powPOW(x, y): 计算 x 的 y 次方power支持支持
Number函数sqrtsqrt(x): 计算x的平方根支持支持
Number函数truncatetruncate(x, n): 数字 x 保留 n 位小数, 向0舍入. truncate(11.111, 1) = 11.1, truncate(-11.111, 1) = -11.1支持支持
Number函数isnanisNaN(x): 判断数字是否是 NaN, 如果是则返回0,否则返回1支持支持
Number函数isinfiniteisInfinite(x): 判断数字 x 是否是无限大,或者无限小(infinite), 如果是,则返回1,否则0支持支持
Number函数isfiniteisFinite(x): 如果 x 不是infinite,也不是nan, 则返回1,否则返回0支持支持
Number函数sinsin(x): 返回x的正弦值支持不支持
Number函数coscos(x): 返回x的余弦值支持不支持
Number函数tantan(x): 返回x的正切值支持不支持
Number函数asinasin(x): 返回x的反正弦值支持不支持
Number函数acosacos(x): 返回x的反余弦值支持不支持
Number函数atanatan(x): 返回x的反正切值支持不支持
Number函数lnln(x): 返回x的自然对数支持不支持
Number函数log2log(x): 返回x的以2为底的对数支持不支持
Number函数log10log10(x): 返回x的以10为底的对数支持不支持
Number函数pipi(): 返回π支持不支持

字符串函数

TopicNameDescriptionAliasMySQLElasticSearch
字符串函数concatCONCAT(c1, c2, c3,...): 将多个字符串进行拼接支持支持
字符串函数concat_wsCONCAT_WS(separator, c1, c2, c3,...): 将多个字符串进行拼接, 使用separator当分隔符支持支持
字符串函数substringsubstring(str, offset, length): 截取字符串 str 的子串, offset 从 1开始取值, 可以为负数。length为正数substr支持支持
字符串函数lengthlength(str): 获取字符串所占的字节数(不一定等于字符数, 比如一个中文字符占多个字节)支持支持
字符串函数replacereplace(str, from_str, to_str): 替换str中的from_str为to_str, 如replace('1.3.4', '.', '') = '134'支持支持
字符串函数leftleft(str, len): 返回字符串str最左边的 len 个字符, left('foobarbar', 4) = 'foob'支持支持
字符串函数trimtrim(str): 去掉字符串头部和尾部连续的空白字符串支持支持
字符串函数ltrimltrim(str): 去掉字符串头部连续的空白字符串trimleft支持支持
字符串函数rtrimrtrim(str): 去掉字符串尾部连续的空白字符串trimright支持支持
字符串函数strcmpstrcmp(str1, str2): 比较str1和str2,如果str1=str2,则返回0,如果str1>str2,则返回1, 如果str2>str1, 则返回-1支持支持
字符串函数reversereverse(str): 将字符串str颠倒顺序. reverse('abc') = 'cba', reverse('你好') = '好你'支持不支持
字符串函数rightright(str, len): 返回字符串str最右边的 len 个字符, right('foobarbar', 4) = 'rbar'支持支持
字符串函数repeatrepeat(str, n): 将字符串str重复n次, repeat('abc', 3) = 'abcabcabc'支持支持
字符串函数locatelocate(substr, str): 返回str 里 substr的角标. locate('bc', 'abcd') = 2, 不存在则返回0支持支持
字符串函数positionposition(substr IN str): 返回str 里 substr的角标. position('bc' IN 'abc') = 2, 不存在则返回0支持支持
字符串函数upperupper(str): 将str转成大写, upper('abc') = 'ABC'支持支持
字符串函数lowerlower(str): 将str转成小写, upper('ABC') = 'abc'支持支持
字符串函数char_lengthchar_length(str): 获取字符串所占的字符数, UTF8字符占一个字符, char_length('abc样') = 4支持支持
字符串函数spacespace(n): 返回由n个空格组成的字符串支持不支持
字符串函数lpadlpad(String, len, pad_str): String左填充pad_str到长度为len,如果len小于String长度,则返回截取String到长度为len的字符串支持不支持
字符串函数rpadrpad(String, len, pad_str): String右填充pad_str到长度为len,如果len小于String长度,则返回截取String到长度为len的字符串支持不支持
字符串函数emptyempty(String): 判断字符串是空为1,否则为0支持不支持
字符串函数startswithstartsWith(String, prefix): 判断字符串是否以指定的前缀开头,是为1,否则为0支持不支持
字符串函数endswithendsWith(String, suffix): 判断字符串是否以指定的后缀结尾,是为1,否则为0支持不支持
字符串函数find_in_setfind_in_set(str, strList): 返回str在strList中的位置,strList中以','分割字符串,不包含str返回0。示例:find_in_set('ab', 'abc,b,ab,c,def')=3支持不支持

类型转换函数

TopicNameDescriptionAliasMySQLElasticSearch
类型转换函数castCAST(value as dataType): 将 value 转化为 dataType 类型, dataType 为unified data type, 如int, float, string, bool等支持不支持
类型转换函数tostringtoString(value): 给 value 转换成string支持支持
类型转换函数tointtoInt(value): 给 value 转换成 inttoint64支持支持
类型转换函数tofloattoFloat(value): 给 value 转换成 floattofloat64支持支持
类型转换函数todatetoDate(column): 将column转化为date类型支持支持
类型转换函数todatetimetoDateTime(column): 将column转化为datetime类型支持支持
类型转换函数todecimaltoDecimal(number, n): 给 number 保留 n 位小数todecimal64支持支持

JSON 函数

TopicNameDescriptionAliasMySQLElasticSearch
JSON函数jsonextractstringJSONExtractString(json[, indices_or_keys]…): 提取JSON中的string. 举例: JSONExtractString('{"a":{"b": "c"}}', 'a', 'b') = 'c'支持不支持
JSON函数jsonextractintJSONExtractInt(json[, indices_or_keys]…): 提取JSON中的int. 举例: JSONExtractString('{"a":{"b": 10}}', 'a', 'b') = 10支持不支持
JSON函数jsonextractfloatJSONExtractFloat(json[, indices_or_keys]…): 提取JSON中的float. 举例: JSONExtractString('{"a":{"b": 10.12}}', 'a', 'b') = 10.12支持不支持
JSON函数jsonextractboolJSONExtractBool(json[, indices_or_keys]…): 提取JSON中的bool. 举例: JSONExtractString('{"a":{"b": true}}', 'a', 'b') = true支持不支持
JSON函数jsonlengthJSONLength(json[, path[. path] ...]): 返回JSON数组或JSON对象的长度. 举例: SELECT JSONLength('{"a": "hello", "b": [-100, 200.0, 300]}') = 2, SELECT JSONLength('{"a": "hello", "b": [-100, 200.0, 300]}', '$.b') = 3json_length支持不支持
JSON函数jsonvalidJSONValid(json): 检查传递的字符串是有效的json.json_valid支持不支持
JSON函数jsontypeJSON_TYPE(json): 返回JSON值的类型. 举例: SELECT JSON_TYPE('{"a": "hello", "b": [-100, 200.0, 300]}') = 'Object'json_type支持不支持
JSON函数jsoncontainsJSONContains(target, candidate[, path]): 检查传JSON文档是否在路径中包含特定对象. 举例: SELECT JSONCONTAINS('[{"a": "hello", "b": [{"c":999}, 200.0, 300]}]', '999', '$[0].b[0].c') = 1json_contains支持不支持
JSON函数jsonunquoteJSONUnquqte(json): 取消JSON值的引用 举例:SELECT JSONUnquqte('"abc"') = abcjson_unquote支持不支持

GEO 函数

TopicNameDescriptionAliasMySQLElasticSearch
GEO函数st_geohashST_GeoHash(longitude, latitude, [max_length]): 将经纬度(longitude, latitude)编码成geohash字符串,其中第三个参数表示生成的字符串最大长度,可不填,默认12geohashencode支持不支持
GEO函数st_pointfromgeohashST_PointFromGeoHash(geohash_str): 将geohash字符串 geohash_str 解码成经纬度,返回格式为字符串 POINT(lon lat)支持不支持
GEO函数st_latfromgeohashST_LatFromGeoHash(geohash_str): 将geohash字符串 geohash_str 解码提取其中的维度支持不支持
GEO函数st_longfromgeohashST_LongFromGeoHash(geohash_str): 将geohash字符串 geohash_str 解码提取其中的经度支持不支持

Bit 函数

TopicNameDescriptionAliasMySQLElasticSearch
Bit函数bitandbitAnd(a, b): 按位与ab, 等价于操作符&支持不支持
Bit函数bitorbitOr(a, b): 按位或ab, 等价于操作符支持
Bit函数bitxorbitXor(a, b): 按位异或ab, 等价于操作符^支持不支持
Bit函数bitnotbitNot(a): 按位取反a, 等价于操作符^支持不支持
Bit函数bitshiftleftbitShiftLeft(a, b): 将a左移b位,等价于操作符<<支持不支持
Bit函数bitShiftRightbitAnd(a, b): 将a右移b位,等价于操作符>>支持不支持

其他函数

TopicNameDescriptionAliasMySQLElasticSearch
其他函数ifif(bool_expression, then, else): 如果bool_expression为真,则返回then的值,否则返回else的值支持支持
其他函数ifnullIFNULL(expression, alt_value): 如果expression不为null, 则返回expression,否则返回alt_value支持支持
其他函数coalescecoalesce(c1, c2, c2, ...): 返回第一个不为NULL的参数,如果参数都为NULL,则返回 NULL支持支持
其他函数isnullISNULL(expression): 如果expression为null, 则返回1, 否则返回0支持支持