oracle 计算两相隔日期每个月的天数

例如计算2019-01-01至2019-03-03之前每个月的天数。

想得到的结果是一月份31天,二月份28天,三月份3天




牟童 发布于 2020-2-13 17:03 (编辑于 2020-2-13 17:05)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ooshanghaiLv5初级互助
发布于2020-2-13 17:30

试试这个思路

其中遇到的函数:month datediff dateadd 

image.png


最佳回答
0
xd4093Lv6初级互助
发布于2020-2-13 17:33(编辑于 2020-2-13 17:36)

最偷懒的写法 去建立个日期表  ,然后合计就行

image.png

select a.year,a.month,count(a.date) 天数 from 

(select date,YEAR(date) year ,month(date) month from T_BA_Date_D where DATEDIFF(d,date,'2019-01-01')<=0  and  DATEDIFF(d,date,'2019-03-03')>=0) a

group by a.year,a.month


这个是SQL server 的  oracle 的 去找这取年份月份  然后统计就行了 ,这种写法最偷懒  还有的就要去构建月份了 比较蛮烦

最佳回答
0
STTLv2见习互助
发布于2020-2-13 17:39

/*我是刚刚群里的哦 

获取2019-12-01至2020-01-21 内的每一天 */

SELECT TO_CHAR(to_date('2019-12-01', 'yyyy-MM-dd') + rownum - 1,'YYYY-MM-DD') AS dateday FROM DUAL CONNECT BY ROWNUM <= (to_date('2020-01-21', 'yyyy-MM-dd')-to_date('2019-12-01', 'yyyy-MM-dd'));

/*然后直接按年月分组就好啦*/

  • 4关注人数
  • 612浏览人数
  • 最后回答于:2020-2-13 17:39
    请选择关闭问题的原因
    确定 取消
    返回顶部