如何将oracle数据库中的数据按星期算出每个

如何将oracle数据库中的数据按星期算出每个,第1张

select max(years) || '年第' || week || '周',count(1)

from (select to_char(Y_TIME, 'yyyy') years,

to_char(Y_TIME+to_char(trunc(Y_TIME,'yyyy'),'d')-2,'WW') week

from T_B) group by week order by max(years),week

其中Y_TIME为你数据的时间字段,T_B为你要查询的表,查出每周数据量

查询结果示例如下:

2012年第31周 340

2012年第42周 6

2012年第43周 35

2012年第46周 7655

2013年第03周 18

2013年第04周 4

2013年第05周 2

2013年第06周 8

这个算法的结果依赖于当前系统时间是什么时候…假设按照你说的,当前系统时间是星期六,那么它计算的结果就是说这个星期六是本月的第几个星期六。就拿12月来说,12月1日是星期六哦,所以你在12月1号查的时候它结果会是1哦,但是12月2日的时候,你查周日,它的结果仍然是1哦,因为是本月第一次出现的星期日哦!只有当你查12月8日的时候,才开始出现结果2哦…其实你可以在系统里选一些特殊的时间查一下就可以发现规律

其实最简单的理解 是每月的第三个周五必然在 15号到21号之间 1号是周五时15号就是第三个周五,如果1号是周六 那21号就是第三个周五。

所以

SELECT CASE

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+15,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+15

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+16,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+16

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+17,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+17

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+18,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+18

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+19,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+19

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+20,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+20

WHEN TO_CHAR(TRUNC(SYSDATE,'MON')+21,'DAY')= '星期五' THEN TRUNC(SYSDATE,'MON')+21

END A

FROM

DUAL

这样虽然麻烦 但是不依靠任何表。而且计算简单,容易理解。

select SUNDAY,SATURDAY from

(select

sundaythe_week,decode(sign(sundaythe_day-saturdaythe_day),-1,sundaythe_day,sundaythe_day-7)

sunday,saturdaythe_day saturday from

(select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day from (select

trunc(sysdate, 'MM')+rownum-1 as wwm from user_objects where rownum < 366) where

to_char(wwm,'D')=1 ) sunday,

(select to_char(wwm,'WW') the_week,to_char(wwm,'D') the_daynum,wwm the_day from (select

trunc(sysdate, 'MM')+rownum-1 as wwm from user_objects where rownum < 366) where

to_char(wwm,'D')=7 ) saturday

where sundaythe_week=saturdaythe_week) a

where the_week=32

以上就是关于如何将oracle数据库中的数据按星期算出每个全部的内容,包括:如何将oracle数据库中的数据按星期算出每个、在oracle中怎么计算当天是本月的第几周、Oracle获得本月第3个星期五等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9334246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存