我希望在 SQL Server 2008 数据库中填充日期维度表。表中的字段如下:
[DateId] INT IDENTITY(1,1) PRIMARY KEY
[DateTime] DATETIME
[Date] DATE
[DayOfWeek_Number] TINYINT
[DayOfWeek_Name] VARCHAR(9)
[DayOfWeek_ShortName] VARCHAR(3)
[Week_Number] TINYINT
[Fiscal_DayOfMonth] TINYINT
[Fiscal_Month_Number] TINYINT
[Fiscal_Month_Name] VARCHAR(12)
[Fiscal_Month_ShortName] VARCHAR(3)
[Fiscal_Quarter] TINYINT
[Fiscal_Year] INT
[Calendar_DayOfMonth] TINYINT
[Calendar_Month Number] TINYINT
[Calendar_Month_Name] VARCHAR(9)
[Calendar_Month_ShortName] VARCHAR(3)
[Calendar_Quarter] TINYINT
[Calendar_Year] INT
[IsLeapYear] BIT
[IsWeekDay] BIT
[IsWeekend] BIT
[IsWorkday] BIT
[IsHoliday] BIT
[HolidayName] VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)
我编写了一个函数 DateListInRange(D1,D2),它返回两个参数日期 D1 和 D2 之间的所有日期。
IE。参数“2014-01-01”和“2014-01-03”将返回:
2014-01-01
2014-01-02
2014-01-03
Run Code Online (Sandbox Code Playgroud)
我想为一个范围内的所有日期填充 DATE_DIM 表,即 2010-01-01 到 2020-01-01。大多数字段都可以用 SQL 2008 DATEPART、DATENAME 和 YEAR …
sql-server-2008 data-warehouse business-intelligence dimension star-schema
我有2个参数,
如果我输入 11 MAR 2014 作为 DATETIME,输入 26 作为月份的输入日期,我想选择 26 FEB 2014 作为输出 DATETIME。
换句话说,我想选择上一个日历月的第 X 天。然后我将使用 DATEDIFF 来查找当前的会计日期。
这与我的问题有关如何在 SQL 服务器中找到上个月的第 XX 天?
会计月从每个月的 26 日开始。
我需要从任何日期找出:
例如:
CurrentDate - '2014-04-26'
Start_Of_Fiscal_Month = 2014-04-26
Day_Of_Fiscal_Month = 1
Run Code Online (Sandbox Code Playgroud)
CurrentDate - '2014-05-02'
Start_Of_Month = 2014-04-26
Day_Of_Fiscal_Month = 7
Run Code Online (Sandbox Code Playgroud)