函数汇总
常用函数
-- 当前前日期
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,'(\\

最低0.47元/天 解锁文章
2661

被折叠的 条评论
为什么被折叠?



