HIVE获得上个月的总天数,比如上月是2月,得到28天
select substr(last_day(add_months(CURRENT_DATE,-1)),9,10);
select (datediff(last_day(add_months(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd HH:mm:ss'), -1)),trunc(add_months(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd HH:mm:ss'), -1),'MM')) + 1) days;
select datediff(date_format(last_day(add_months(current_date(),-1)),'yyyy-MM-dd'),trunc(add_months(current_date(),-1),'MM'));
select day(date_sub(concat(from_unixtime(unix_timestamp(), 'yyyy-MM'), '-01'), 1))
推荐使用ButterFly0612的答案,其他的不值一提。
select substr(last_day(add_months(CURRENT_DATE,-1)),9,10);
解决方法有很多,其中一个思路参考:
先把时间设置成当月1号0点0分0秒,然后再减1秒,截取日,即可。
select day(last_day(date_sub(now(),interval 1 month)));