
说明:对字符进行拼接、截取、去空格
如:concat、concat_ws、substring、trim、lpad、rpad、split、find_in_set
1.1 concat说明:拼接字符
SELECt CONCAt(user_name,dt) FROM user_view -- 输出: "welsh20200801" "Albert20200801"1.2 concat_ws
说明:拼接字符且分割
SELECt CONCAT_Ws(':',user_name,dt) FROM user_view;
-- 输出:
"welsh:20200801"
"Albert:20200801"
1.3 substring
说明:截取字符串
用法:subString(col, intstart, int len)
SELECt CONCAT_Ws(':',user_name,dt) FROM user_view
-- 输出:
"welsh:20200801"
"Albert:20200801"
1.4 trim
说明:去掉两边的空格
用法:trim(col)
select trim(' welsh ')
-- 输出:
"welsh"
1.5 repeat
说明:复制函数
用法:repeat(string str, int n)
select repeat('welsh',2)
-- 输出:
"welshwelsh"
1.6 lpad
说明:填充函数,默认从左开始补充
用法:lpad(string str, int len, string pad)
select lpad('welsh',10, 'ddd')
-- 输出:
"dddddwelsh"
1.7 rpad
说明:右补充函数,默认从右开始补充
用法:rpad(string str, int len, string pad)
select rpad('welsh',10, 'ddd')
-- 输出:
"welshddddd"
1.8 split
说明:分割函数,返回list
用法:split(string str, stringpat)
select split('welshUAlbertUGG','U')
-- 输出:
["welsh","Albert","GG"]
1.9 find_in_set
说明:查找函数,返回首次出现该字符位置
用法:find_in_set(string str, string strList)
select find_in_set('welsh','Albert,and,welsh,go,to,Swimming')
-- 输出:
3
说明:时间获取、格式化、2个时间相差、时间增加、时间减少
枚举:unix_timestamp、FROM_UNIXTIME、to_date、weekofyear、weekofyear、datediff、date_add、date_sub
2.1 unix_timestamp说明:获取当前时间戳
用法:unix_timestamp()
SELECt unix_timestamp() -- 输出: 16002269012.2 from_unixtiom
说明:格式化时间戳,通常与unix_timestamp()一起用,获取当前时间
用法:FROM_UNIXTIME()
SELECt FROM_UNIXTIME(unix_timestamp(),'yyyyMMdd') -- 输出: 202009162.3 to_date
说明:格式化时间
用法:to_date()
SELECT to_date('2020-09-10 10:03:01') as now_time
-- 输出:
2020-09-10
2.4 weekofyear
说明:返回当前周
用法:weekofyear()
SELECT weekofyear('2020-09-08 10:03:01') as now_time
-- 输出:
37
2.5 datediff
说明:日期相差天数
用法:datediff()
select datediff('2020-09-09','2020-08-08')
-- 输出:
32
2.6 date_add
说明:日期增加
用 法:date_add()
select date_add('2020-09-08',10) as date_time
-- 输出:
2020-09-18
2.7 date_sub
说明:日期减少N天
用法:date_sub()
select date_sub('2020-09-08',10) as date_time
-- 输出:
2020-08-29