1.语法
DAY(LAST_DAY(CONCAT(nc_date,'01')))AS cm_day_cnt, -- 当月天数
DAY(LAST_DAY(DATE_SUB((CONCAT(nc_date,'01')),INTERVAL 1 MONTH))) -- 上月天数
2.解析
我的nc_date 是 202004,因此要使用concat 连接01 ,形成完整的日期
LAST_DAY()函数,获取月份的最后一天
最后需要将 30取出来 ,运用到 day()函数
求上月天数,使用 DATE_SUB 函数,将月份减一,重复以上操作即可。
3.求当前月天数
select curdate(); --获取当前日期
select DATE_ADD(curdate(),interval -day(curdate())+1 day) --获取本月第一天
select date_add(curdate()-day(curdate())+1,interval 1 month ) -- 获取下个月的第一天
select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual --获取当前月的天数