hive---内置函数(1)

类型转换函数

cast强制转换

select cast("5" as int)---------将字符串5转换为int类型 

字符串转成时间戳

select unix_timestamp("2018/09/20 19:50:29","yyyy/MM/dd HH:mm:ss");

数学运算符

round------正数的四舍五入,负数的五舍六入:select round (5.4)-----5

round(5.1235,3)----保留3位小数的四舍五入5.134

ceil----------天花板(向上取整):select ceil(5.4)-------6

floor----地板(向下取整):select floor(5.6)---------5

abs-----绝对值:select abs(-5.3)---------5.3

greatest----最大值(一行最少需要两个为数字类型的字段):select greatest(3,5,8,2)-----8

least------最小值(一行最少需要两个为数字类型的字段):select least(3,5,8,2)-----2

select max(一组字段可以是任意类型)----------取最大值的聚合函数

select min(一组字段可以是任意类型)----------取最小值的聚合函数

字符串函数

截取字段固定长度:

substr('源字符串',截取的起始索引(0/1均表示第一个字符),20(截取长度,如果不写直接截取到最后))

拼接字符串函数

concat(string A,string B....)

concat_ws(分隔符,string A,string B....)

length(字符串)------字符串的长度

切割字符串

select split('18:male:beijing',':');返回数组

注意:select split('192.168.2.4','.')是不能分割的,因为.是正则表达式的特殊字符

所以应该为select split('192.168.2.4','\\.')

转大写

upper(string)

时间函数

select current_timestamp---hive时间戳2017-07-30 13:35:46

select unix_timestamp----------自1970年到现在的毫秒时间戳1505618789

datediff('2018-5-14','2017-5-14');----------计算两个日期间隔的天数

date_add('2018-5-14',3);---------------------指定的日期添加指定天数

date_sub('2018-5-14',3);---------------------指定的日期减少指定的天数

转换函数:

select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss(转换后的格式)')Unix时间戳转换为字符串

select unix_timestamp("2016/09/20 13:40:46","yyyy/MM/dd HH:mm:ss")字符串转换为Unix时间戳

select to_date("2016/09/20 13:40:46")字符串转成日期

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值