![](/img/trans.png)
[英]MySQL: Get date based on the nth day of the week on a particular month/year
[英]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.