Oracle SQL—计算两个日期之间连续的周数
我需要计算两个日期之间的连续周数,目前我可以使用Oracle SQL—计算两个日期之间连续的周数,sql,oracle,Sql,Oracle,我需要计算两个日期之间的连续周数,目前我可以使用 select (next_day(TO_DATE('01-01-1994', 'DD/MM/YYYY'), 'MONDAY')-next_day(TO_DATE('01-01-1995', 'DD/MM/YYYY'), 'MONDAY'))/7 countinous_weeks from dual; 这两个日期之间已经过去了52周,但当我查看'01-01-1994'的最后一周时,我得到了53周 select to_char(TO_DATE(
select
(next_day(TO_DATE('01-01-1994', 'DD/MM/YYYY'), 'MONDAY')-next_day(TO_DATE('01-01-1995',
'DD/MM/YYYY'), 'MONDAY'))/7 countinous_weeks
from dual;
这两个日期之间已经过去了52周,但当我查看'01-01-1994'的最后一周时,我得到了53周
select
to_char(TO_DATE('31-12-1994', 'DD/MM/YYYY'),'ww') as last_week_test
from dual;
很明显,我们可以理解为什么会发生这种情况,但如果有人能想出一种方法,连续计算周数,而不必使用第二天,我将不胜感激,因为我认为这就是问题所在
非常感谢您提前提供任何提示。我猜这是因为您在第二个案例中有效地汇总了周数,例如,您的第一个案例正在按照您想要的方式工作 如果您查找的是整周,那么第一个答案是正确的;如果您查找的是所有周,那么如果有剩余,则添加1 e、 g
您可以按天使用
trunc
功能,如下所示:
select (trunc(TO_DATE('01-01-1994', 'DD/MM/YYYY'),'d')-trunc(TO_DATE('01-01-1995',
'DD/MM/YYYY'),'d'))/7 countinous_weeks from dual;
你不应该在下一天使用,
,因为你可以从本周中退出。我希望这有帮助
select (trunc(TO_DATE('01-01-1994', 'DD/MM/YYYY'),'d')-trunc(TO_DATE('01-01-1995',
'DD/MM/YYYY'),'d'))/7 countinous_weeks from dual;