hiveSQL常⽤函数总结查询系统⾃带的函数
show functions
显⽰系统⾃带的函数的⽤法
desc function count
详细显⽰⾃带函数的⽤法
desc function extended count
⽇期函数
1. unix时间戳类型转⽇期:
- 10位数时间戳
select from_unixtime(1564581347,'yyyy-MM-dd HH:mm:ss') ;
- 13位数时间戳
select from_unixtime(cast(1564581347793/1000 as bigint),'yyyy-MM-dd HH:mm:ss') ;
2、获取当前UNIX时间戳函数: unix_timestamp ***
语法: unix_timestamp()
返回值: bigint
说明: 获得当前时区的UNIX时间戳
hive> select unix_timestamp() from tableName;
- 返回 1323309615
3、指定格式⽇期转UNIX时间戳函数: unix_timestamp ***
语法: unix_timestamp(string date, string pattern)
返回值: bigint
说明: 转换pattern格式的⽇期到UNIX时间戳。如果转化失败,则返回0。
hive> select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss') from tableName;
- 返回 1323234063
datediff是字符型函数4、⽇期时间转⽇期函数: to_date ***
语法: to_date(string timestamp)
返回值: string
说明: 返回⽇期时间字段中的⽇期部分。
hive> select to_date('2011-12-08 10:03:01') from tableName;
-返回 2011-12-08
5、获取某个⽇期对应的是星期⼏:
说明:datediff中的第⼀个参数是要处理的数据,第⼆个参数默认些‘2012-01-01’即可;返回值中0表⽰星期⽇,1表⽰星期⼀......
hive> pmod(datediff(to_date("2021-11-26"), "2012-01-01"), 7)
-返回 0
2. case when 的⽤法
select
case
when mobile='173********'and status in (2,4)
then 'leon'
when mobile='1866375062' and status in (2,4)
then 'alix'
else '其他'
end,
nickname
from _der
WHERE mobile in ('173********','1866375062')
3.字符串相关函数
1. 字符串连接函数:concat ***
语法: concat(string A, string B…)
返回值: string
说明:返回输⼊字符串连接后的结果,⽀持任意个输⼊字符串
hive> select concat('abc','def','gh') from tableName;
- 返回 abcdefgh
2. 带分隔符字符串连接函数:concat_ws ***
语法: concat_ws(string SEP, string A, string B…)
返回值: string
说明:返回输⼊字符串连接后的结果,SEP表⽰各个字符串间的分隔符
hive> select concat_ws('-','union','12345678')from tableName;
- 返回 union-12345678
3. 字符串截取函数:substr,substring ****
语法: substr(string A, int start),substring(string A, int start)
返回值: string
说明:返回字符串A从start位置到结尾的字符串
hive> select substr('abcde',3) from tableName;
- 返回 cde
hive> select substring('abcde',3) from tableName;
-
返回 cde
hive> select substr('abcde',-1) from tableName; (和ORACLE相同)
- 返回e
4. 字符串截取函数:substr,substring ****
语法: substr(string A, int start, int len),substring(string A, int start, int len)
返回值: string
说明:返回字符串A从start位置开始,长度为len的字符串
hive> select substr('abcde',3,2) from tableName;
- 返回 cd
hive> select substring('abcde',3,2) from tableName;
- 返回 cd
hive>select substring('abcde',-2,2) from tableName;
- 返回 de
5. 去空格函数:trim ***
语法: trim(string A)
返回值: string
说明:去除字符串两边的空格
hive> select trim(' abc ') from tableName;
- 返回 abc
6.去空格函数:trim ***
语法: trim(string A)
返回值: string
说明:去除字符串两边的空格
hive> select trim(' abc ') from tableName;
- 返回 abc
7. json解析函数:get_json_object ****
语法: get_json_object(string json_string, string path)
返回值: string
说明:解析json的字符串json_string,返回path指定的内容。如果输⼊的json字符串⽆效,那么返回NULL。
hive> select get_json_object('{"store":{"fruit":\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"} },"email":"amy@only_for_json_udf_test","owner":"amy"}','$.owner') from tableName; -返回 amy
8.分割字符串函数: split ****
语法: split(string str, string pat)
返回值: array
说明: 按照pat字符串分割str,会返回分割后的字符串数组
hive> select split('abtcdtef','t') from tableName;
-返回 ["ab","cd","ef"]
9.缺失值填充函数:nvl ****
语法:nvl(expr1,expr2)
返回值: string
说明:如果第⼀个参数为空那么显⽰第⼆个参数的值,如果第⼀个参数的值不为空,则显⽰第⼀个参数本来的值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论