包含日期、日期、月、年、期间、周号的SQL表?(SQL)

包含日期、日期、月、年、期间、周号的SQL表?(SQL),sql,sql-server,alter-table,getdate,Sql,Sql Server,Alter Table,Getdate,很久以前,我使用SQL创建了一个表,该表有天、月、年、工作日、日期和期间(例如:2016年4月)。 这是我当前表格的外观: | Period | Day | Month | Year | Weekday | Date | |:-----------|-----|-------|------|---------|----------:| | April 2016 | 21 | April |2016 |Thursday |2016-04-21 | 现在我需要添加周(这是当月

很久以前,我使用SQL创建了一个表,该表有天、月、年、工作日、日期和期间(例如:2016年4月)。 这是我当前表格的外观:

|   Period   | Day | Month | Year | Weekday |    Date   |
|:-----------|-----|-------|------|---------|----------:|
| April 2016 | 21  | April |2016  |Thursday |2016-04-21 |
现在我需要添加(这是当月的第1周、第2周,…)

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

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

此查询返回

4
如何将名为Week的新列插入现有表中,并让其查找当前周数

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


非常感谢您的帮助

首先使用
ALTER TABLE

ALTER TABLE TableName
ADD Week int
然后
更新
带有周数的列:

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

注意:此
编号仅基于天数,而不是一周中的几天(星期一、星期二)等。

首先使用
更改表为
添加一列

ALTER TABLE TableName
ADD Week int
然后
更新
带有周数的列:

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

注意:此
周数
仅基于天数,而不是一周中的几天(星期一、星期二)等。

很遗憾,我不再有CREATE查询。
使用SQL Server Management Studio,在表上单击鼠标右键并生成创建脚本是不是右键单击>将表作为脚本>创建到>新建查询编辑器窗口?如果是,则只创建列,而不设置其计算值:(
很遗憾,我不再有我的创建查询。
使用SQL Server Management Studio,右键单击表并生成创建脚本是否右键单击>将表作为脚本>创建到>新建查询编辑器窗口?如果是,则只创建列,但不设置其计算值:(