内特扎一年中第 n 周的第一天

  • 本文关键字:第一天 一年 sql netezza
  • 更新时间 :
  • 英文 :


如何找到一年中第 n 周的第一天的日期?例如,以下所有查询:

SELECT DATE_PART('WEEK', '2019-07-22 01:12:07'::timestamp);
SELECT DATE_PART('WEEK', '2019-07-23 01:12:07'::timestamp);
SELECT DATE_PART('WEEK', '2019-07-24 01:12:07'::timestamp);
给 30

,因为这三个日期在 2019 年的第 30 周。

我的问题是我怎样才能做与此相反的事情。在我的SQL版本中,周从星期一开始(如果你从星期日开始,这不是问题 - 我可以进行调整(,因此第30周的第一天是2019-07-22(今天,即星期一(。如何输入周数 30 并获取该周的第一天,即 2019-07-22(或 07-21,如果一周的第一天在您的 SQL 中是星期日(

您必须找到前一年最后一个星期一的日期,并向其添加 7 * {周数} 天

PS:不要忘记考虑具有2月29日的年份:)

事实证明,解决方案实际上非常简单。我不得不要求它提出一个解决方案,我想。这是第 30 周

SELECT ('2019-01-01'::timestamp + (30-1)*7 - (DATE_PART('DOW', DATE '2019-01-01')-2))
-- Result: 2019-07-22

我基本上从一年的第一天开始,加上(n-1)*7,并调整一年的第一天不是星期一。

相关内容

  • 没有找到相关文章

最新更新