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 --获取当前月的天数

posted on 2020-08-17 14:31  爱吃萝卜青菜  阅读(2778)  评论(0编辑  收藏  举报