首页 > IT职业 > IT生活 > 第几周的起始日期和结束日期
算法有点复杂:
select to_date( '2005-01-01 ', 'yyyy-mm-dd ')
+mod(7 - to_number(to_char(to_date( '2005-01-01 ', 'yyyy-mm-dd '), 'd ')) + i,7)
+ (n - 1)*7 as bngdate,
to_date( '2005-01-01 ', 'yyyy-mm-dd ')
+mod(7 - to_number(to_char(to_date( '2005-01-01 ', 'yyyy-mm-dd '), 'd ')) + i,7)
+ n*7-1 as enddate
from dual;
上式中有两个参数,n和i,n为第n个完整周,i为每星期起始日,i=1表示从星期日开始算一周的第一天,i=2表示从星期一开始算一周的第一天,依次类推....。
将2005换成其它年份,就可以算其它年份的。可以改成过程或函数。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/67798/viewspace-1040721/ ,如需转载,请注明出处,否则将追究法律责任。