0


Hive常见的日期函数

hive中常见的几种日期函数的用法

1、fom_unixtime

UNIX 时间戳转日期
语法:fom_unixtime(bigint unixtime[, string format]);
返回类型:string

说明:转化 UNIX 时间戳(从1970-01-01 00:00:00 UTC 到指定时间的秒数)到当前时区的时间格式。

例如:

select from_unixtime(1590000000, 'yyyy-MM-dd');

返回:

2020-05-21

2、unix_timestamp

获取当前 UNIX 时间戳
语法1:不传参数
unix_timestamp()
返回类型:bigint

说明:获取当前时区的 UNIX 时间戳。可以和from_unixtime一起搭配使用

例如:

select unix_timestamp();

返回:

1592361030

结合from_unixtime:

select from_unixtime(select unix_timestamp(), 'yyyy-MM-dd');

返回:

2020-6-17

把日期转为UNIX 时间戳
语法2:传参数“yyyy-MM-dd HH:mm:ss”
unix_timestamp(string date)
返回类型:bigint

说明:转换格式为 “yyyy-MM-dd HH:mm:ss” 的日期到 UNIX 时间戳。日期必须包含时分秒,否则会转换失败,返回 NULL。

例如:

select unix_timestamp('2020-06-17 01:01:00');

返回:

1592326860

指定格式日期转 UNIX 时间戳
语法3:unix_timestamp(string date, string pattern)
返回类型:bigint

说明:转换 pattern 格式的日期为 UNIX 时间戳。这里要注意传的日期要和后面的格式一一对应,如果传的是年月日:‘20200521’,后面的格式要为:‘yyyyMMdd’。前后不一致会导致转换失败,如果转换失败,则返回 NULL。

例如:

select unix_timestamp('20200521', 'yyyyMMdd');

返回:

15989990400

3、日期时间转日期函数:to_date

语法:to_date(string timestamp)
返回类型:string

说明:返回日期时间字段中的日期部分。只能是“yyyy-MM-dd” 或 “yyyy-MM-dd HH:mm:ss”,其他格式会返回Null

例如:

select to_date('2020-05-21 01:01:00');

返回:

2020-05-21

4、日期转年函数:year

语法:year(string date)
返回类型:int

说明:返回日期中的年份。格式同to_date

例如:

select year('2020-05-21 01:01:00');

返回:

2020

5、日期转月函数:month

语法:month(string date)
返回类型:int

说明:返回日期中的月份。格式同to_date

例如:

select month('2020-05-21 01:01:00');

返回:

5

6、日期转天函数:day

语法:day(string date)
返回类型:int

说明:返回日期中的天。格式同to_date

例如:

select day('2020-05-21 01:01:00');

返回:

21

7、日期转小时函数:hour

语法:hour(string date)
返回类型:int

说明:返回日期中的小时。只能是“yyyy-MM-dd HH:mm:ss”,如果参数里没有时分秒会返回‘0’。(必须包含HH:mm:ss,少一个都会返回‘0’!)

例如:

select hour('2020-05-21 01:01:10');

返回:

1

8、日期转分钟函数:minute

语法:minute(string date)
返回类型:int

说明:返回日期中的分钟。格式同hour

例如:

select minute('2020-05-21 01:01:10');

返回:

40

9、日期转秒函数:second

语法:second(string date)
返回类型:int

说明:返回日期中的秒。格式同hour

例如:

select second('2020-05-21 01:01:10');

返回:

10

10、日期转周函数:weekofyear

语法:weekofyear(string date)
返回类型:int

说明:返回日期在该年的周数。格式同to_date

例如:

select weekofyear('2020-05-21 01:01:10');

返回:

21

11、日期比较函数:datediff

语法:datediff(string enddate, string startdate)
返回类型:int

说明:返回结束日期减去开始日期的天数。结束日期在前,开始日期在后,否则会返回负数。格式同to_date

例如:

select datediff('2020-05-21', '2020-05-20');

返回:

1

12、日期增加函数:date_add

语法:date_add(string startdate, int days)
返回类型:string

说明:返回日期 startdate 增加 days 天后的日期。int days也可以传负数,为负数时就是减去days天后的日期

例如:

select date_add('2020-05-21', 10);

返回:

2020-05-31

13、日期减少函数:date_sub

语法:date_sub(string startdate, int days)
返回类型:string

说明:返回开始日期 startdate 减少 days 天后的日期。同date_add

例如:

select date_sub('2020-05-21', 10);

返回:

2020-05-11

关于其中的组合用法,大家可以自己去探索。


本文转载自: https://blog.csdn.net/weixin_43951431/article/details/137143428
版权归原作者 总自以为是走的捷径 所有, 如有侵权,请联系我们删除。

“Hive常见的日期函数”的评论:

还没有评论