栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive日期函数各种用法

hive日期函数各种用法

1. 获取当前时间:yyyy-mm-dd

SELECT CURRENT_DATE();

current_date()
2021-12-30

2. 获取当月第一天时间:yyyy-mm-dd

select date_sub(current_date,dayofmonth(current_date)-1);

date_sub(current_date(), (dayofmonth(current_date()) - 1))
2021-12-01

3. 获取下个月第一天时间:yyyy-mm-dd

select add_months(date_sub(current_date,dayofmonth(current_date)-1),1);

add_months(date_sub(current_date(), (dayofmonth(current_date()) - 1)), 1)
2022-017-01

4. 获取当月第几天:yyyy-mm-dd

select dayofmonth(current_date);

dayofmonth(current_date())
30

5. 获取当前日期所在月月末日期:yyyy-mm-dd

select last_day(current_date);

last_day(current_date())
2021-12-31

6. 获取当前日期本周一:yyyy-mm-dd

select date_sub(next_day(CURRENT_DATE,'MO'),7);

date_sub(next_day(current_date(), MO), 7)
2021-12-27

7. 获取当前日期上周一:yyyy-mm-dd

select date_sub(next_day(CURRENT_DATE,'MO'),14);

date_sub(next_day(current_date(), MO), 14)
2021-12-20

8. 获取当前日期上周日:yyyy-mm-dd

select date_sub(next_day(CURRENT_DATE,'MO'),8);

date_sub(next_day(current_date(), MO), 8)
2021-12-26 

9. 获取当前日期本周二:yyyy-mm-dd(获取其他周几调整最后参数)

select date_sub(next_day(CURRENT_DATE,'MO'),6);

date_sub(next_day(current_date(), MO), 6)

2021-12-21

10. 获取当前日期上周二:

yyyy-mm-dd(获取其他周几调整最后参数)

select date_sub(next_day(CURRENT_DATE,'MO'),13) ;

date_sub(next_day(current_date(), MO), 13)
2021-12-21


11. 获取当前时间的前/后几个月时间:

yyyy-mm-dd(调整最后参数)

select add_months(CURRENT_DATE,-3);

2021-09-30

select add_months(CURRENT_DATE,3);
2022-03-30

12. 开始结束时间相差天数

datediff(string enddate, string startdate);

select datediff('2021-12-15','2021-12-20');
-5

13. 从开始时间startdate加上days

date_add(string startdate, int days)

select date_add('2021-12-15', 5);

date_add(CAST(2021-12-15 AS DATE), 5)
2021-12-20

14. 从开始时间startdate减去days

date_sub(string startdate, int days);

select date_sub('2021-12-30', 5);

date_sub(CAST(2021-06-15 AS DATE), 5)
2021-12-25

15. 获取上季度初日期

select add_months(concat(year(CURRENT_DATE),'-',substr(concat('0',floor((month(CURRENT_DATE)+2)/3)*3+1),-2),'-01'),-6);

add_months(CAST(concat(CAST(year(current_date()) AS STRING), -, substring(concat(0, CAST(((FLOOR((CAST((month(current_date()) + 2) AS DOUBLE) / CAST(3 AS DOUBLE))) * CAST(3 AS BIGINT)) + CAST(1 AS BIGINT)) AS STRING)), -2, 2147483647), -01) AS DATE), -6)
2021-07-01

16. 获取本季度初日期

select add_months(concat(year(CURRENT_DATE),'-',substr(concat('0',floor((month(CURRENT_DATE)+2)/3)*3+1),-2),'-01'),-3);

add_months(CAST(concat(CAST(year(current_date()) AS STRING), -, substring(concat(0, CAST(((FLOOR((CAST((month(current_date()) + 2) AS DOUBLE) / CAST(3 AS DOUBLE))) * CAST(3 AS BIGINT)) + CAST(1 AS BIGINT)) AS STRING)), -2, 2147483647), -01) AS DATE), -3)
2021-10-01

17.取上个季度同今天时间

select add_months(CURRENT_DATE,-3);

add_months(current_date(), -3)
2021-09-30

18.去年本季度开始时间

select add_months(concat(year(CURRENT_DATE),'-',substr(concat('0',floor((month(CURRENT_DATE)+2)/3)*3+1),-2),'-01'),-15);

add_months(CAST(concat(CAST(year(current_date()) AS STRING), -, substring(concat(0, CAST(((FLOOR((CAST((month(current_date()) + 2) AS DOUBLE) / CAST(3 AS DOUBLE))) * CAST(3 AS BIGINT)) + CAST(1 AS BIGINT)) AS STRING)), -2, 2147483647), -01) AS DATE), -15)
2020-10-01

19.去年本季度今日时间

select add_months(CURRENT_DATE,-12);

add_months(current_date(), -12)
2020-12-30

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/687446.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号