Hive日期相关函数

注意

下面函数的string只支持’yyyy-MM-dd HH:mm:ss’ 或 'yyyy-MM-dd’格式的字符串。如果是yyyy/MM/dd这样的日期需要先转换,可以参考下文的格式调整部分。

格式化日期

date_format(date/timestamp/string, fmt)

参数可以是日期,字符串,时间戳

hive> select date_format('2020-06-23','yyyy-MM-dd');
OK
2020-06-23
Time taken: 0.043 seconds, Fetched: 1 row(s)

hive> select date_format('2020-06-23','yyyy-MM-dd HH:mm:ss');
OK
2020-06-23 00:00:00
Time taken: 0.061 seconds, Fetched: 1 row(s)

取出日期中的年/月/日

month/year/day(date/timestamp/string)

hive> select year("2020-02-03");
OK
2020
Time taken: 0.049 seconds, Fetched: 1 row(s)

hive> select month("2020-02-03");
OK
2
Time taken: 0.057 seconds, Fetched: 1 row(s)

hive> select day("2020-02-03");
OK
3
Time taken: 0.052 seconds, Fetched: 1 row(s)

日期与天数的加减

date_add(date/string, n)和date_sub(date/string, n)

hive> SELECT date_add("2020-06-23", 1);
OK
2020-06-24
Time taken: 0.043 seconds, Fetched: 1 row(s)

hive> SELECT date_sub("2020-06-23", 1);
OK
2020-06-22
Time taken: 0.041 seconds, Fetched: 1 row(s)

两个日期相差的天数

datediff(date1/string1, date2/string2)

hive> SELECT datediff('2009-07-30', '2009-07-31');
OK
-1
Time taken: 0.035 seconds, Fetched: 1 row(s)

hive> SELECT datediff('2009-08-30', '2009-07-31');
OK
30

取下周N

hive> select next_day('2019-02-12','Monday');
OK
2019-02-18
Time taken: 0.035 seconds, Fetched: 1 row(s)

月最后一天

hive > select last_day('2020-07-16');
OK
2020-07-31

月第一天

hive > select trunc('2020-07-16' ,'MM');
OK
2020-07-01

调整日期的格式

用字符替换可以把yyyy/MM/dd这些非标准日期格式转化成符合HiveSQL日期函数的格式。

hive> select date_format(regexp_replace("2020-05-06",'/','-'),'yyyy-MM-dd');
OK
2020-05-06
Time taken: 0.049 seconds, Fetched: 1 row(s)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值