Sql 日历表-周数/月数

Sql 日历表-周数/月数,sql,sql-server-2000,Sql,Sql Server 2000,我有一个日历表,上面有2000年到2012年的数据(2012年不是故意的!)。我只是意识到我没有月份的周数(例如1月1日、2日、3日、4日、2月1日、2日、3日、4日) 我如何计算一个月内的周数来填充此表 下面是表模式 CREATE TABLE [TCalendar] ( [TimeKey] [int] NOT NULL , [FullDateAlternateKey] [datetime] NOT NULL , [HolidayKey] [tinyint] NULL ,

我有一个日历表,上面有2000年到2012年的数据(2012年不是故意的!)。我只是意识到我没有月份的周数(例如1月1日、2日、3日、4日、2月1日、2日、3日、4日)

我如何计算一个月内的周数来填充此表

下面是表模式

CREATE TABLE [TCalendar] (
    [TimeKey] [int] NOT NULL ,
    [FullDateAlternateKey] [datetime] NOT NULL ,
    [HolidayKey] [tinyint] NULL ,
    [IsWeekDay] [tinyint] NULL ,
    [DayNumberOfWeek] [tinyint] NULL ,
    [EnglishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [SpanishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FrenchDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [DayNumberOfMonth] [tinyint] NULL ,
    [DayNumberOfYear] [smallint] NULL ,
    [WeekNumberOfYear] [tinyint] NULL ,
    [EnglishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [SpanishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FrenchMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [MonthNumberOfYear] [tinyint] NULL ,
    [CalendarQuarter] [tinyint] NULL ,
    [CalendarYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [CalendarSemester] [tinyint] NULL ,
    [FiscalQuarter] [tinyint] NULL ,
    [FiscalYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FiscalSemester] [tinyint] NULL ,
    [IsLastDayInMonth] [tinyint] NULL ,
    CONSTRAINT [PK_TCalendar] PRIMARY KEY  CLUSTERED 
    (
        [TimeKey]
    )  ON [PRIMARY] 
) ON [PRIMARY]
GO
update TCalendar 
set = WeekNumberOfMonth = DATEDIFF(week, DATEADD(MONTH, DATEDIFF(MONTH, 0, FullDateAlternateKey), 0), FullDateAlternateKey) +1