查找给定周数周期的最接近的未来日期

Find closest, future date of given number of weeks cycle

假设我有一个:

start_date = '2020-01-06'

date(now())

我想找到最近的未来日期,从现在开始,它是 start_date

的 4 (n)(或另一个数字)周周期的乘积

今天的预期产量为 '2020-03-02'

我想不出任何聪明的主意来检查它。

如果有任何建议,我将不胜感激。

你可以做日期算术:

  • 计算现在和 "anchor" 日期之间的差异
  • 将其除以 7(每周天数)和 4(周)
  • 从结果中取下一个整数值
  • 乘以 4 和 7,然后将该天数加到当前日期

在SQL中:

date'2020-01-06' + ceil((current_date - date'2020-01-06')::numeric / 4 / 7)::int * 4 * 7

Dremo on DB Fiddlde:

with t as (select date'2020-01-06' anchor, 4 n)
select 
    anchor,
    n,
    current_date,
    anchor + ceil((current_date - anchor)::numeric / n / 7)::int * n * 7 next_date
from t
anchor     |  n | current_date | next_date 
:--------- | -: | :----------- | :---------
2020-01-06 |  4 | 2020-02-10   | 2020-03-02