Hadoop技术栈(四)HIVE常用函数汇总

函数汇总

常用函数

-- 当前前日期

select current_date;

select unix_timestamp();

-- 建议使用current_timestamp,有没有括号都可以

select current_timestamp();

-- 时间戳转日期

select from_unixtime(1505456567);

select from_unixtime(1505456567, 'yyyyMMdd');

select from_unixtime(1505456567, 'yyyy-MM-dd HH:mm:ss');

-- 日期转时间戳

select unix_timestamp('2019-09-15 14:23:00');

-- 计算时间差

select datediff('2020-04-18','2019-11-21');

select datediff('2019-11-21', '2020-04-18');

-- 查询当月第几天

select dayofmonth(current_date);

-- 计算月末:

select last_day(current_date);

-- 当月第1天:

select date_sub(current_date, dayofmonth(current_date)-1)

-- 下个月第1天:

select add_months(date_sub(current_date, dayofmonth(current_date)-1), 1)

-- 字符串转时间(字符串必须为:yyyy-MM-dd格式)

select to_date('2020-01-01');

select to_date('2020-01-01 12:12:12');

-- 日期、时间戳、字符串类型格式化输出标准时间格式

select date_format(current_timestamp(), 'yyyy-MM-dd HH:mm:ss');

select date_format(current_date(), 'yyyyMMdd');

select date_format('2020-06-01', 'yyyy-MM-dd HH:mm:ss');

-- 计算emp表中,每个人的工龄

select *, round(datediff(current_date, hiredate)/365,1)

workingyears from emp;

select * from fenmi_pay.pay_trade_order_202503 limit 1
-- --------------------------- 字符串 函数 --------------------------------- --
-- 反转字符串
select reverse(goods_name) from fenmi_pay.pay_trade_order_202503 limit 1
-- 字符串 字节字节字节 长度 这个utfmb3还是mb4决定中文字符用3字节还是4字节
select length(goods_name) from fenmi_pay.pay_trade_order_202503 limit 1
-- 连接字符串函数 没有连接符的
select concat(goods_name,pay_way_name,id) from fenmi_pay.pay_trade_order_202503 limit 1
-- 连接字符串函数 带连接符的 也可以不带连接符
select concat_ws(',',goods_name,pay_way_name,id) from fenmi_pay.pay_trade_order_202503 limit 1
-- 提取字串 哪个字段 从哪个字符开始(最少要是1) 提取长度多少
select substr(goods_name, 1, 5) from fenmi_pay.pay_trade_order_202503 limit 1
-- 有字母的字母全转为 大 写
select upper(goods_name),ucase(goods_name) from fenmi_pay.pay_trade_order_202503 limit 1
-- 有字母的字母全转为 小 写
select lower(goods_name),lcase(goods_name) from fenmi_pay.pay_trade_order_202503 limit 1
-- 去除字符串 前和后 一个或多个 空格
select trim(goods_name),ltrim(goods_name),rtrim(goods_name) from fenmi_pay.pay_trade_order_202503 limit 1
-- HIVE中的拆分字符串
-- select split(goods_name,'-') from fenmi_pay.pay_trade_order_202503 limit 1
-- 将字段重复 n 遍
select repeat(goods_name, 3) from fenmi_pay.pay_trade_order_202503 limit 1
-- 返回n个空格组成的字符串
select space(10);
-- 替换所有 字段 需要替换的字串 用来替换的新字串
select replace(goods_name,'-','') from fenmi_pay.pay_trade_order_202503 limit 1
-- 替换匹配 正则表达 的字符串 字段 需要替换的字串 用来替换的新字串
select regexp_replace(goods_name,'(\\d+)','null') from fenmi_pay.pay_trade_order_202503 limit 1
-- 提取匹配 正则表达 的字符串
-- select regexp_extract(goods_name,'(\\d+)',5) from fenmi_pay.pay_trade_order_202503 limit 1
-- 提取匹配 正则表达 的字符串 全部提取
-- select regexp_extract_all(goods_name,'(\\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值