如何将周数转换为日期?

问题描述:

给定一个年份和日历周,如何获得该周的星期二作为日期?

Given a year and calendar week, how can I get the tuesday of that week as a date?

cw (calender week)作为变量(例如从SELECT语句)可以得到DATE如下:

Given you have year and cw (calender week) as variables (e.g. from a SELECT statement) you can get the DATE as following:

DATE_SUB(
  DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK),
  INTERVAL WEEKDAY(
    DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK)
  ) -1 DAY),

短语 DATE_ADD(MAKEDATE(year,1),INTERVAL cw WEEK)被复制;不想存储一个变量。 SQL语句在MySQL上非常适合我。

The phrase DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK) is duplicated; did not want to store a variable. The SQL-Statement worked nicely for me on MySQL.

更新:只是为了澄清: WEEKDAY(DATE_ADD(MAKEDATE(year,1),INTERVAL cw WEEK)) 将产生一周的第一天。从中抽出一个数字(星期二为-1;星期三为-2)将为您选择一周中的特定日期)。
请参阅此处

UPDATE: Just for clarification: WEEKDAY(DATE_ADD(MAKEDATE(year, 1), INTERVAL cw WEEK)) will yield the first day of the week. Substracting a number from it (-1 for Tuesday; -2 for Wednesday and so forth will select a specific day in the week for you). See here.