代码之家  ›  专栏  ›  技术社区  ›  Saif Khan

日历表-月的周数

  •  0
  • Saif Khan  · 技术社区  · 14 年前

    我有一个日历表,上面有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
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Saif Khan    14 年前
    update TCalendar 
    set = WeekNumberOfMonth = DATEDIFF(week, DATEADD(MONTH, DATEDIFF(MONTH, 0, FullDateAlternateKey), 0), FullDateAlternateKey) +1