我需要生成一个列表的周末日期的基础上,第一周结束日期,并在一个日期范围。
例如:我的周末日期为"06/04/2022"。如果输入06/01/2022 - 01/01/2023作为日期参数,我需要一个从06/04/2022到01/01/2023的每七天列表。输出如下所示:
| 日期|
| - ------|
| 2022年4月6日|
| 2022年6月11日|
| 2022年6月18日|
| 。|
| 。|
| 。|
| 二○二二年十二月二十四日|
| 2022年12月31日|
注意:最初的周结束日期不一定总是在星期六,所以它需要基于实际日期,而不是一周中的哪一天。
我有这段代码可以生成两个日期之间的每一天,但是我需要两个日期之间的每七天,并且基于从另一个表中检索到的日期字段。我被困在如何从该日期获得每七天或每周。
select (date'2022-06-04' + level - 1) dt
from dual
connect by level <= (date'2023-01-01' - date'2022-06-01' + 1)
2条答案
按热度按时间vdzxcuhz1#
步长乘以7:
或者,为了使您正在执行的计算更明显地表明您正在添加一个星期,您可以使用
INTERVAL
文本:bjp0bcyl2#
您还可以计算您的连接所需的周数的水平代码.
即,这将给予所需的行数
值得注意的是,DATE 2-DATE 1代码之所以有效,是因为Oracle喜欢以天为单位来考虑事情。例如,Sysdate - 1只是昨天。Sysdate + 1只是明天。
然后加上+1,因为在少于一周的情况下,您可能希望返回1行
然后这样做