Tabla de calendario para Data Warehouse

Para mi almacén de datos, estoy creando una tabla de calendario de la siguiente manera:

SET NOCOUNT ON DROP Table dbo.Calendar GO Create Table dbo.Calendar ( CalendarId Integer NOT NULL, DateValue Date NOT NULL, DayNumberOfWeek Integer NOT NULL, NameOfDay VarChar (10) NOT NULL, NameOfMonth VarChar (10) NOT NULL, WeekOfYear Integer NOT NULL, JulianDay Integer NOT NULL, USAIsBankHoliday Bit NOT NULL, USADayName VarChar (100) NULL, ) ALTER TABLE dbo.Calendar ADD CONSTRAINT DF_Calendar_USAIsBankHoliday DEFAULT 0 FOR USAIsBankHoliday GO ALTER TABLE dbo.Calendar ADD CONSTRAINT DF_Calendar_USADayName DEFAULT '' FOR USADayName GO Declare @StartDate DateTime = '01/01/2000' Declare @EndDate DateTime = '01/01/2020' While @StartDate  2 SELECT * FROM dbo.Calendar 

Aquí está la salida de este comando

http://img35.imageshack.us/img35/3899/calendartable.png

He visto estructuras similares implementadas en varios sabores por arquitectos de datos.

Mi pregunta es: ¿qué otra información útil de almacenamiento de datos / estilo de dimensión puedo agregar a esta estructura de tabla?

  • Trimestre
  • Año
  • Año financiero / contable
  • Cuarto financiero / contable
  • isWeekend
  • isWeekday
  • isWorkDay
  • WeekId (semanas desde el comienzo del año)
  • isLastDayofMonth
  • DaysSince (por ejemplo, días desde el 1/1/2000)

Esta es mi lista de posibles columnas en la dimensión del calendario:

  • Llave
  • Fecha
  • Es ayer
  • Es hoy
  • Es mañana
  • Día del año
  • Día de medio año
  • Día del trimestre
  • Dia del mes
  • Día de la semana
  • Nombre corto del día de la semana
  • Día de la semana nombre corto CS
  • Día de la semana nombre largo
  • Día de la semana nombre largo CS
  • Días en Semana
  • Días en el mes
  • Días en el trimestre
  • Días en medio año
  • Días en año
  • Día inverso de la semana
  • Revertir el día del mes
  • Día de cuarto reverso
  • Día inverso de medio año
  • Día inverso del año
  • Son los últimos 7 días
  • Son los últimos 14 días
  • Son los últimos 30 días
  • Son últimos 90 días
  • Son los últimos 180 días
  • Son últimos 365 días
  • Es día de la semana
  • Es fin de semana
  • Día de trabajo de la semana
  • Día de trabajo del mes
  • Día de trabajo de Quarter
  • Día de trabajo de Halfyear
  • Día de trabajo del año
  • Día de trabajo inverso de la semana
  • Día de trabajo inverso del mes
  • Día de trabajo inverso del trimestre
  • Día de trabajo invertido de medio año
  • Día de trabajo invertido del año
  • Días de trabajo en la semana
  • Días de trabajo en el mes
  • Días laborables en el trimestre
  • Días laborables en medio año
  • Días de trabajo en año
  • Es el último día de trabajo en la semana
  • Es el último día de trabajo en el mes
  • Es Workday
  • Es vacaciones
  • Es futuro
  • Es pasado
  • Es mes anterior
  • Es el mes actual
  • Es el siguiente mes
  • Es mes hasta la fecha
  • Es el comienzo del mes
  • Es fin del mes
  • Es el mes pasado
  • Principio del mes
  • Fin de mes
  • Número de mes
  • Mes nombre largo
  • Mes Nombre Long CS
  • Mes nombre corto
  • Mes nombre corto CS
  • Mes de trimestre
  • Mes de medio año
  • Es la semana anterior
  • Es la semana actual
  • Es la semana siguiente
  • Es la semana hasta la fecha
  • Es el comienzo de la semana
  • Es fin de semana
  • Es la semana pasada
  • Principio de la semana
  • Fin de semana
  • Número de la semana
  • Nombre de la semana Long
  • Nombre de la semana corto
  • Semana del mes
  • Es trimestre anterior
  • Es el trimestre actual
  • Es el siguiente trimestre
  • Es trimestre hasta la fecha
  • Es el comienzo del trimestre
  • Es fin de trimestre
  • Es el trimestre pasado
  • Principio del trimestre
  • Fin del trimestre
  • Número de trimestre
  • Cuarto nombre largo
  • Quarter Name Long CS
  • Nombre del trimestre corto
  • Es medio año anterior
  • Es actual medio año
  • Sigue a medio año
  • Es medio año hasta la fecha
  • Es el comienzo de medio año
  • Es fin de medio año
  • Es pasado medio año
  • Principio de medio año
  • Fin del medio año
  • Número de medio año
  • Nombre a mitad de año
  • Nombre de medio año Long CS
  • Nombre de mitad de año corto
  • Es año anterior
  • Es el año actual
  • Es el año siguiente
  • Es año hasta la fecha
  • Es el comienzo del año
  • Es fin de año
  • Es año pasado
  • Principio de año
  • Fin de año
  • Número de año
  • Año Nombre Largo
  • Año Nombre Corto
  • Año cuarto de texto
  • Año mes dia
  • Año Medio año
  • Cuatrimestre del año
  • Año mes
  • Año Día del año
  • Es año bisiesto
  • Distancia en días desde hoy
  • Distancia en días laborables a partir de hoy
  • Distancia en Calendar Weeks from Today
  • Distancia en Meses Calendario desde Hoy
  • Distancia en Cuartos Calendarios desde Hoy
  • Distancia en el calendario a medio año desde hoy
  • Distancia en los años calendario a partir de hoy
  • Enésimo día de la semana del mes
  • Reverse enésimo día de la semana en el mes

Creé una hoja de cálculo interactiva donde puede crear su propia dimensión de tiempo para la base de datos PostgreSQL.

Bueno, Raj More, es un buen post y un script muy útil para Crear un calendario, los otros campos que puedes incluir en la misma tabla pueden ser: 1) QuateroftheYear 2) IsWeekend 3) IsWeekday

cuarto de año
year_quarter (2013-3)
mes del año
year_month (2013-08)
semana del año
semana del mes
día del año
día del trimestre
dia del mes
día de la semana

Intereting Posts