我使用以下查询来查找两个日期之间的周数:
select count(week_id)
from fw
where week_begin_date >= '2015-01-01'
and week_end_date <= '2015-12-31';
预期结果应为 53,但实际结果为 51。
请帮忙解决这个问题。
最佳答案
不能只使用一年中的星期函数吗?如果需要的话减去...
select to_char(to_date('12/31/2015','MM/DD/YYYY'),'WW') from dual;
select To_Number(to_char(to_date('12/31/2015','MM/DD/YYYY'),'WW')) -
To_number(to_char(to_date('01/01/2015','MM/DD/YYYY'),'WW')) +1
from dual;
我们必须添加 +1,因为周从 1 而不是 0 开始。
现在您可能需要 ISO 周格式,即 IW
而不是 WW
。
WW:一年中的第几周 (1-53),其中第一周从一年中的第一天开始,一直持续到一年中的第七天。
IW:基于 ISO 标准的一年中的第几周(1-52 或 1-53)。
关于oracle - 计算oracle中两个日期之间的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36718616/