hive sql 转 presto sql 的 常见问题:presto instr

都是sql,基本逻辑是一样的,常常出现问题是因为两边都函数不同导致hivesql没法在presto引擎下执行。
在我的使用场景中,一些常见的需要替换的函数,现记录下。

主要参考资料还是官方文档:Presto 0.246 Documentation

时间转换相关的函数:
这里format的格式很奇怪,本来date_parse和date_format是一样的
但是我这用到的format却不一样,你们用的是那个格式的format?

-- presto
# 时间字符串 转 时间戳
select to_unixtime(date_parse('20210205', '%Y%m%d'))  
select to_unixtime(parse_datetime('20210205', 'yyyymmdd'))
> 1612454400.00

# 时间 时间戳  转 字符串
select  date_format(from_unixtime(1612454400),'yyyyMMdd')
> 20210205

presto instr相关函数:

-- hive
select instr(addr,'北京');
-- presto
select strpos(addr,'北京');

json解析函数:

--hive 
select get_json_object(feild,'$.name') as feild_name
-- presto
select json_extract(feild,'$.name') as feild_name

你可能感兴趣的:(sql,hive,presto)