WW Semana del año (1-53) donde la semana 1 empieza en el primer dia del año
W Semana del mes (1-5) donde la semana 1 empieza en el primer dia del mes
IW Semana del año (1-52 or 1-53) basada en el estandar ISO.
SELECT F.iso_week_start_date + (Rownum-1) as Fecha
FROM DUAL d
CROSS JOIN ( select TRUNC(TRUNC(sysdate, 'iw') - 1,'iw') AS iso_week_start_date
from dual
) F
CONNECT BY Rownum <= 7
Oracle 不是我的强项,但您可以先从当前日期减去 7 天,然后获取该新日期的周数。
这是从日期中减去天数的方法:
https://stackoverflow.com/questions/27451226/add-days-oracle-sql
归功于@mkumawat10 的回答和翻译,在这种情况下少了 7 天:
所以得到一周的数量:
https://stackoverflow.com/questions/16530044/how-to-extract-week-number-in-sql
感谢@Wolf对当前情况的回答和翻译:
在最后一种情况下,可以根据要考虑的选项替换“IW”:
你可以这样做:
离开:
细节:
sysdate
在这个例子中使用,我们获得一周的第一天,我们减去 1 天,回到前一周,我们重新计算一周的第一天.dual
我们生成一个由 7 个值组成的序列,我们将这些值与获得的日期结合起来生成当前一周的 7 天。