减一天 日期函数_我与Hive的不解之谜系列(五):Hive常用函数及面试题实践解析...

本篇内容

主要讲述一些常用的函数、语法,结合案例、面试题来进行实践。

日期函数

date_sub('',n) 和date_add('',n)  加减日期

select date_sub('2020-12-03',1);

+-------------+
|     _c0     |
+-------------+
| 2020-12-02  |
+-------------+

select date_add('2020-12-03',1);

+-------------+
|     _c0     |
+-------------+
| 2020-12-04  |
+-------------+

last_day('') 返回这个月的最后一天

select last_day('2020-02-02');

+-------------+
|     _c0     |
+-------------+
| 2020-02-29  |
+-------------+

dayofweek(string date)返回所给日期为所在周的第几天

select  dayofweek(‘2020-12-03’);   周四

+------+
| _c0  |
+------+
| 5    |
+------+

注:返回的数字应该是真正的周几加上一,因为西方一周的第一天是周日

面试题:

求出  '2020-12-03'所在月的第一天和  所在周的周一的日期

select trunc('2020-12-03','MM');

select  date_sub('2020-12-03',dayofweek('2020-12-03')-2);     

dayofweek 先求出日期所在的周几,然后使用当前日期-(所在周几-2)  求出周一所在的日期    1是周日   2  是周一

year(string date) 、month(string date)、  hour(string date)

datediff  计算出两个时间的差

select datediff('2020-12-04','2020-12-06');

+------+
| _c0  |
+------+
| -2   |
+------+

很明显是前面日期减后面日期

条件函数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值