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 --獲取當前月的天數