簡體   English   中英

Netezza一年中第n周的第一天

[英]First Day of nth Week of the Year in 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(如果您的SQL中一周的第一天是星期日,則為07-21)

您必須找到上一年的最后一個星期一的日期,並向其添加7 * {week-number}天

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 ,然后調整為一年的第一天,而不是星期一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM