flink函数汇总

时间函数

TIMESTAMPDIFF:返回两个时间戳的间隔

NOW():返回当前时区时间的时间戳,单位为秒

CURRENT_DATE:返回当前系统时间

LOCALTIMESTAMP:返回当前系统的时间戳

CURRENT_TIMESTAMP:返回当前UTC(GMT+0)时间戳,时间戳单位为毫秒

LOCALTIME:以数据类型TIME的值返回会话时区中的当前时间FROM_UNIXTIME:

FROM_UNIXTIME(1505404800)、FROM_UNIXTIME(1505404800, 'yyyy-MM-dd')
描述:返回值为VARCHAR类型的日期值,默认日期格式:yyyy-MM-dd HH:mm:ss,若指定日期格式按指定格式输出任一输入参数是NULL,返回NULL
BIGINT UNIX_TIMESTAMP():返回当前时间戳,单位秒
BIGINT UNIX_TIMESTAMP('yyyy-MM-dd HH:mm:ss'):返回指定时间的时间戳,10位
BIGINT UNIX_TIMESTAMP(VARCHAR date, VARCHAR format):按指定格式返回时间字符串的时间戳
TIMESTAMP TO_TIMESTAMP(VARCHAR date):返回指定时间字符串的TIMESTAMP类型时间
TIMESTAMP TO_TIMESTAMP(VARCHAR date, VARCHAR format):返回指定格式时间字符串的TIMESTAMP类型时间
TO_DATE(VARCHAR date):返回指定时间字符串的DATE类型
TO_DATE(VARCHAR date,VARCHAR format):返回值指定格式类型时间字符串的DATE类型

BIGINT MONTH(TIMESTAMP timestamp)

BIGINT MONTH(DATE date)

YEAR、WEEK、HOUR、MINUTE、SECOND

描述:返回输入时间参数中的月,范围1~12

BIGINT DAYOFMONTH(TIMESTAMP time)

BIGINT DAYOFMONTH(DATE date)

描述:返回输入时间参数date或time中所指代的“日”。返回值范围为1~31

dateFormat(阿里云flink 1.1.0 sql不建议使用)

语法:

DATE_FORMAT(TIMESTAMP time, VARCHAR to_format)

DATE_FORMAT(VARCHAR date, VARCHAR to_format)

DATE_FORMAT(VARCHAR date, VARCHAR from_format, VARCHAR to_format)

参数:time:时间戳   date:时间字符串  to_format:目标格式(yyyy-MM-dd HH:mm:ss)from_format:原格式(from_format)

FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy'):格式化时间戳,可替代DATE_FORMAT

TIMESTAMP TIMESTAMPADD(interval,INT int_expr,TIMESTAMP datetime_expr):TIMESTAMPADD(DAY, 3, current_timestamp) 

DATE TIMESTAMPADD(interval, INT add,DATE date):TIMESTAMPADD(HOUR, 3, current_date) 

描述:将date按interval(YEAR/MONTH/DAY/HOUR/MINUTE/SECOND)加add

EXTRACT(YEAR FROM CURRENT_TIMESTAMP)

EXTRACT(MONTH FROM CURRENT_TIMESTAMP)

EXTRACT(DAY FROM CURRENT_TIMESTAMP)

EXTRACT(WEEK FROM CURRENT_TIMESTAMP)

描述:返回日期/时间的单独部分,例如年、月、日、小时、分钟、周数等

mod

语法:INTEGER MOD(INTEGER x,INTEGER y)

描述:整数运算中,求整数x除以整数y的余数。当x为负值时,或者x、y均为负值时,结果为负值。

bin

语法:bin(10)=1010

描述:返回一个整数的二进制数

hex

语法:hex(16)=10

描述:返回一个整数的十六进制数

upper/lower

语法:upper('aa')=AA

描述:将小写字母变为大写

to_base64/from_base64

语法:from_base64('YWE=')
描述:base64加密/解密

md5

语法:md5('aa')
描述:MD5加密字符串

rand

语法:rand()
描述:返回大于等于0及小于1的均匀分布随机实数

cast

语法:cast(1 as VARCHAR)
描述:类型强制转换

regexp_replace

语法:egexp_replace('01234abcde56789','[0-9]','#') ==》 #####abcde#####

描述:用#替换字符串中的所有数字

trim/ltrim/rtrim

语法:trim('  s  ff   ') ==> s  ff

描述:去除前后空格

sqrt

语法:sqrt(4) ==>2

描述:返回一个数的平方根

similar to/not similar to

语法:‘aa’ similar  to 'aa' ==> true
描述:判断字符串是否相同/不相同

concat

语法:concat('a','b','abc') ==>ababc

描述:将n个字符串拼接

concat_ws与concat用法一样,区别是concat_ws如果有一个null则返回null

sum

语法:sum(field)

描述:将字段field的值累加,一般跟group by结合使用

initCap

语法:initCap('abcD') ==>Abcd
描述:将字符串首字母大写,其余小写返回

replace

语法:replace('abc111', '1', '')==>abc
描述:替换指定字符
substring('abc', 2)==>bc
substring('abcd',2,2)==>bc

repeat

语法:repeat('abc', 2)==》abcabc
描述:重复指定字符串n次

lpad/rpad

语法:rpad('abc', 9, vn)==>abcvnvnvn
描述:从abc右侧填充vn,长度为9

char_Length

语法:char_Length('abc')==》3
描述:返回字符串的字符长度

overlay

语法:overlay('abcdefg' PLACING 'hij' FROM 2 FOR 2)==>ahijdefg
描述:用hij替换abcdefg中从b开始,长度为2的字符(bc)

position

语法:position('a' in 'hfhcacc')
描述:返回字符在字符串中的位置

collect

语法:select collect(name) from test group by age
描述:按年龄分组将名字输出为一行。collect输出的是一个数组,使用需注意数组大小

cardinality

描述:返回数组的元素个数

 

posted @ 2023-08-17 17:23  梦呓空间  阅读(212)  评论(0编辑  收藏  举报