select trunc(sysdate,'yyyy') - to_char(trunc(sysdate,'yyyy'),'d')-5 + :week 7 startweek,trunc(sysdate,'yyyy') - to_char(trunc(sysdate,'yyyy'),'d')+1 +:week 7 as endweek from dual;
:week 为第几周
#include"stdafxh"\x0d\#include\x0d\\x0d\intfun(intyear)\x0d\{\x0d\intsum=0;\x0d\if(year>2011)\x0d\{\x0d\while(year>2011)\x0d\{\x0d\year--;\x0d\if(year%4==0&&year%100!=0||year%400==0)sum+=2;\x0d\elsesum+=1;\x0d\}\x0d\return(sum+6)%7;\x0d\}\x0d\\x0d\while(year2011,先自减一,计算year-1那年有多少天\x0d\考虑到365%7=1,366%7=2,所以用sum+=1和sum+=2分别统计平年和闰年应该加多少天\x0d\最后,返回(sum+6)%7,(2011年1月1日是星期6)\x0d\\x0d\如果year2011的不同,因为sum是往回减的\x0d\\x0d\当然如果year=2011,两处循环的表达式都不符合,直接返回6\x0d\\x0d\主函数中,根据返回值决输出,此处把0作星期天处理
这个就可以查出你web_date中指定某年某月第一天、最后一天的数据了:
但如果你的字段year_month是date类型的,就这样写:
select from web_date a where ayear_month in
(select to_date('201502'||'01','yyyymmdd') from dual
union all(select to_date(to_char(last_day(to_date('201502', 'yyyymm')),'yyyymmdd'),'yyyymmdd')from dual));
但如果你的字段year_month是char类型的,就这样写:
select from web_date a where ayear_month in
( select '201502'||'01' from dual
union all( select to_char(last_day(to_date('201502', 'yyyymm')),'yyyymmdd')from dual));
'201502'这个是变量,你可以任意更改。
以上就是关于ORACLE 如何实现根据这一年的第N周 获取第N周的第一天,最后一天的具体日期各位高手,帮帮忙吧!全部的内容,包括:ORACLE 如何实现根据这一年的第N周 获取第N周的第一天,最后一天的具体日期各位高手,帮帮忙吧!、用C语言编写一个万年历时候,怎么确定一年中第一天是星期几、Oracle如何获取一个年月的第一天和最后一天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)