회계 기간 4-4-5를 사용합니다. 이 문제에 익숙하지 않은 경우 Wikipedia에서 정보를 찾을 수 있습니다.4-4-5 회계 기간은 나의 존재의 부채입니다.
이 작업을 수행하려면 다음 10 년 동안 모든 날짜가 포함 된 날짜 테이블을 만들었습니다. 나는 수정 한 스크립트 (here)를 사용했습니다.
내 테이블의 생성 스크립트는 다음과 같습니다
USE [RedFridayDates];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE TABLE [tblRedFridayAllDates] (
[DATE_ID] int NOT NULL,
[DATE] datetime NOT NULL,
[YEAR] smallint NOT NULL,
[MONTH] tinyint NOT NULL,
[DAY_OF_WEEK] tinyint NOT NULL,
[REDFRIDAY] bit NULL,
[Period] tinyint NULL,
[ForecastSales] money NULL)
ON [PRIMARY];
GO
기간 내 4-4-5 "달"입니다.
나는 일반적으로 내가 만든 다음 템플릿으로 내 쿼리를 링크 : 나의 날짜 모든 날짜 필드는 내 데이터베이스 사용의 대부분
SELECT RED.[YEAR] as [Year],
RED.PERIOD as [RF Period],
FROM TableName
INNER JOIN REDFRIDAYDATES..TBLREDFRIDAYALLDATES RED
ON RED.date =
CAST (FLOOR (CAST (TableName.Date AS FLOAT)) AS DATETIME)
는 SQL 2000입니다.
더 효율적인 방법이 있습니까? 이게 내가 사용할 수있는 최상의 쿼리 템플릿인가? Date to Date 시간을 변환하는 다른 방법은 어떻습니까? 그렇게하는 더 빠른 방법이 있습니까?