[SQL] 달력 표 - 달의 주 번호
SQL달력 표 - 달의 주 번호
나는 2012 년 2000 년의 데이터로 달력 테이블이 (2012 것은 의도적이 아니었다!). 난 그냥 달의 주 번호가없는 것을 깨닫게 (예를 들어, 월 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.
update TCalendar set = WeekNumberOfMonth = DATEDIFF(week, DATEADD(MONTH, DATEDIFF(MONTH, 0, FullDateAlternateKey), 0), FullDateAlternateKey) +1
from https://stackoverflow.com/questions/2459260/calendar-table-week-number-of-month by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 그것은) (카운트에 조건을 지정 할 수 있습니까? (0) | 2020.04.05 |
---|---|
[SQL] SQL Server의 저장 프로 시저에서 텍스트 검색 (0) | 2020.04.05 |
[SQL] 클래식 ASP에서 저장 프로 시저를 사용하여 .. 실행하고 결과를 얻을 수 (0) | 2020.04.05 |
[SQL] 준비된 문에 LIKE '% {$ var에} %'를 사용하는 올바른 방법은? [mysqli] (0) | 2020.04.05 |
[SQL] SQL은 - 행에서 파괴 값을 빼면 (0) | 2020.04.05 |