SQL table 日、日、月、年、期间、周数? (SQL)

SQL table with Day, Date, Month, Year, Period, Week Number? (SQL)

我很久以前使用 SQL 创建了一个 table,它有日、月、年、工作日、日期和期间(例如:2016 年 4 月)。 这就是我当前的 table 的样子:

|   Period   | Day | Month | Year | Weekday |    Date   |
|:-----------|-----|-------|------|---------|----------:|
| April 2016 | 21  | April |2016  |Thursday |2016-04-21 |

现在我需要添加 (即当月的第 1、2、...周)。

这个select语句给出了正确的结果:

SELECT datediff(week, dateadd(week, datediff(week, 0, dateadd(month, datediff(month, 0, GETDATE()), 0)), 0), GETDATE() - 1) + 1

这个查询returns

4

如何将名为 Week 的新列插入现有 table 并让它找到当前周数?

我相信现有的 table 正在使用 GETDATE() 来计算其值。不幸的是,我没有我的 CREATE 查询了。

非常感谢任何帮助!

首先使用 ALTER TABLE

week 添加一列
ALTER TABLE TableName
ADD Week int

然后 UPDATE 周数列:

UPDATE TableName
SET Week = DATEPART(day, DATEDIFF(day, 0, [Date])/7 * 7)/7 + 1

注意:此week数字仅基于天数,而不是星期几(星期一、星期二)等