hive教程:日期转换-year() 、month()、day()、hour()、minute()、second()、weekofyear()

说明

从日期字段中,获取相应的部分,返回类型是 int

year()

日期转年函数,返回日期中的年

返回类型:int

语法:

year(string date)

注意格式

date 必须包含 yyyy-MM-dd
年份必须是 yyyy 格式
月日是二位、还是一位都可以

只要符合这些格式就可以返回天,否则转换失败,返回null

例子

select year('2011-12-08 10:03:01')
返回 2011
select year('2012-12-08')
返回 2012
select year('2012-12');
NULL

month()

返回日期中的月份

语法:

month(string date)

返回类型: int

注意格式

date 必须包含 yyyy-MM-dd
年份必须是 yyyy 格式
月日是二位、还是一位都可以

只要符合这些格式就可以返回天,否则转换失败,返回null

例子

select month('2011-12-08 10:03:01');
返回 12
select month('2011-08-08');
返回 8
select month('2011-08');
返回 NULL

day()

返回日期中的天

语法:

day(string date)

返回值: int

注意格式

date 必须包含 yyyy-MM-dd
年份必须是 yyyy 格式
月日是二位、还是一位都可以

只要符合这些格式就可以返回天,否则转换失败,返回null

例子

select day('2011-12-08 10:03:01');
8
select day('2011-12-24');
24
select day('2011-12');
NULL

hour()

返回日期中的小时

语法:

hour(string date)

返回值: int

注意格式

date 必须包含 年-月-日 时:分:秒
:四位、二位都可以
月-日 时:分:秒 是二位、一位都可以

只要符合这些格式就可以返回 小时,否则转换失败,返回null

例子

可以正常转换:

select hour('2011-12-08 10:03:01');
10
select hour('1-12-08 9:3:1');
9

不能正常转换:

select hour('2011-12-08 10:3');
0
select hour('10:03:01');
null

minute()

返回日期中的分钟

语法:

minute(string date)

返回值: int

注意格式

date 必须包含 年-月-日 时:分:秒
:四位、二位都可以
月-日 时:分:秒 是二位、一位都可以

只要符合这些格式就可以返回 小时,否则转换失败,返回null

例子

可以正常转换

select minute('2011-12-08 10:03:01');
3

select minute('1-12-08 9:3:1');
3

不能正常转换:

select minute('2011-12-08 10:3');
0

select minute('10:03:01');
null

second()

返回日期中的秒

语法:

second(string date)

返回值: int

注意格式

date 必须包含 年-月-日 时:分:秒
:四位、二位都可以
月-日 时:分:秒 是二位、一位都可以

只要符合这些格式就可以返回 小时,否则转换失败,返回null

例子

可以正常转换

select second('2011-12-08 10:03:13');
3

select second('1-12-08 9:3:12');
12

不能正常转换:

select second('2011-12-08 10:3');
0

select second('10:03:01');
null

weekofyear()

返回日期在当前的周数

语法:

weekofyear(string date)

返回值: int

注意格式

date 必须包含 yyyy-MM-dd
年份必须是 yyyy 格式
月日是二位、还是一位都可以

只要符合这些格式就可以返回天,否则转换失败,返回null

例子

可以正常转换:

select weekofyear('2022-01-01');
返回52,是上一年的第52周

select weekofyear('2011-1-8 10:03:13');
1

select weekofyear('2011-1-08 10:3');
1

不能正常转换:

select weekofyear('1-1-08 9:3:12');
2

select second('2011-1');
null

感谢:
https://cloud.tencent.com/developer/article/1025429


原文出处:http://malaoshi.top/show_1IX3MD4amO7I.html