数据分析师hive常用函数总结


一、日期转换相关

1、to_date():datetime改为date

input: select to_date('2018-01-01 23:59:59')

output: ‘2018-01-01’

2、weekofyear() :当年第几周

input: select weekofyear ('2018-01-01')

output:  1

3、datediff(date1,date2) 日期相减,适用于计算两个日期相隔多少天的场景

input: select datediff ('2018-01-02', '2018-01-01')

output:  1

4、date_add(date,days) 日期增加x天,如果days为负数,结果则为日期减x天。

input: select date_add ('2018-01-01', 1)

output:  2018-01-02

5、add_months (date,months) 月份增加x月,如果months为负数,结果则为日期减x月。

input: select add_months ('2018-01-01', 1)

output:  2018-02-01

6、trunc(date, 'mm') 取当月第一天日期

input: select trunc('2019-01-25','mm')

output:  2019-01-01

7、last_day(sysdate( - 1)取当月最后一天

input:select last_day('2019-01-03')

output:2019-01-31

8、year(date)\month(date)\week(date)\day(date) 取日期的年\月\周\日

input:select year('2019-01-03')

output: 2019


二、字符串处理

1、select concat(string1, string1) 字符串连接

input:select concat(3,'%')

output:3%

2、substr(string,start,int) 从第start位开始截取int位字符串内容

input: select ('asdf',2,2)

 output:sd

3、split(string1,string2) ,将字符串分割为一个数组,分割符为string2,类似excel里的分列功能。

input: select split ('1123,423,534,65,75,76,57,567',',')---将字符串按逗号分割

output:["1123","423","534","65","75","76","57","567"]

如果想取其中某一列的数据,可用split(string1,string2)[n]获得

input: select split ('1123,423,534,65,75,76,57,567',',')[1]

output:423

4、length() 求一个字符串长度

input: select length(123456) 

output:6

你可能感兴趣的:(数据分析师hive常用函数总结)