Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL—计算两个日期之间连续的周数_Sql_Oracle - Fatal编程技术网

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;