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
数字仅基于天数,而不是星期几(星期一、星期二)等
我很久以前使用 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
数字仅基于天数,而不是星期几(星期一、星期二)等