![v2-c600ab220d52fac9e697b7acb0909439_1440w.jpg?source=172ae18b](http://img-02.proxy.5ce.com/view/image?&type=2&guid=ef4761b3-f42e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-c600ab220d52fac9e697b7acb0909439_1440w.jpg?source=172ae18b)
在hive中,可以使用substr()函数截取字符串,比如从日期中截取年份、月份等信息。
还有一个函数是substring(),用法基本上与substr()相同,至于区别这里暂时不做研究。
substr()——在字符串A中从指定位置开始截取一定长度的字符。
substr(string A, int start,int length)
- string A——输入需要处理的字符串
- int start——开始截取的位置索引(int),注意索引从1开始,如果此处输入0,结果与输入1相同。
- int length——截取的长度(int)
接下来看一下substr()的用法示例:
# 从'20191125'中截取年份
# substr('20191125',0,4)与substr('20191125',1,4)结果相同
hive> select substr('20191125',0,4);
OK
_c0
2019
Time taken: 0.134 seconds, Fetched: 1 row(s)
hive> select substr('20191125',1,4);
OK
_c0
2019
Time taken: 0.091 seconds, Fetched: 1 row(s)
# 从'20191125'中截取月份
hive> select substr('20191125',5,2);
OK
_c0
11
Time taken: 0.067 seconds, Fetched: 1 row(s)
# 从'20191125'中截取日
hive> select substr('20191125',7,2);
OK
_c0
25
Time taken: 0.065 seconds, Fetched: 1 row(s)
这里简单看下substring()的用法,输出结果与substr相同。
hive> select substring('20191125',1,4);
OK
_c0
2019
Time taken: 0.138 seconds, Fetched: 1 row(s)