资料:
Hive-获取本月的第一天,本月的最后一天,本月的天数
https://blog.csdn.net/H_X_P_/article/details/108161834
实际使用如下:
datediff(last_day(concat(t1.zyear,"-",t1.zmonth,"-","10")),date_sub(concat(t1.zyear,"-",t1.zmonth,"-","10"),dayofmonth(concat(t1.zyear,"-",t1.zmonth,"-","10"))))
过程如下:
- 获取当前日期所在月的最后一天的日期
- 得到上月月末的日期
- 使用datediff(月末日期,上月月末日期)得到本月的天数
select last_day("2020-06-01"), -- 获取日期所在月份的最后一天
dayofmonth("2020-06-01"), -- 1 返回日期/时间戳所在月份的日期,或间隔的天数
dayofmonth("2020-06-02"), -- 2
dayofmonth("2020-06-01")-1, -- 0
date_sub("2020-06-01",dayofmonth("2020-06-01")-1), -- 2020-06-01
date_sub("2020-06-01",dayofmonth("2020-06-01")), --2020-05-31
date_sub("2020-06-01",0), -- 2020-06-01
datediff(last_day("2020-06-01"),'2020-06-01'), -- 29
datediff(last_day("2020-06-01"),'2020-05-31'), -- 30
datediff(last_day("2020-06-01"),date_sub("2020-06-01",dayofmonth("2020-06-01")-1)), --29
datediff(last_day("2020-06-01"),date_sub("2020-06-01",dayofmonth("2020-06-01"))); --30