Utilice la Parte de Fecha
Guía
Caso de uso: ¿Necesita un Date
tabla con muchas partes de fecha diferentes y columnas de fecha de referencia
Esto se puede desplegar en su totalidad App Builder no requiere una Number
tabla con 0 - N filas, pero hay otro tutorial sobre cómo generar números exponencialmente para una tabla como esa, todo con App Builder subconsultas unidas entre sí.
El hecho de que la semana comience el domingo o el lunes depende de la configuración de la base de datos. Existe una opción para que la consulta global @@DATEFIRST
la configuración en el nivel de base de datos será lunes o domingo.
A continuación se muestra la tabla Date
.
Las siguientes son consultas para crear las columnas.
CAST(DateAdd(day, N.Number - {{Días históricos}}, NOW()) AS Date) AS Date
DatePart(year, {{Fecha de vencimiento}}
) AS YearDatePart(quarter, {{Fecha de vencimiento}}
) AS Quarter
DatePart(month, {{Fecha de vencimiento}}
) AS MonthDatePart(week, {{Fecha de vencimiento}}
) AS Week
DatePart(day, {{Fecha de vencimiento}}
) AS DayDatePart(weekday, {{Fecha de vencimiento}}
) AS Weekday
DateAdd(year, DateDiff(year, 0, {{Fecha de vencimiento}}
), 0) AS YearStartDateDateAdd(year, DateDiff(year, 0, {{Fecha de vencimiento}}
) + 1, - 1) AS YearEndDate
DateAdd(day, -(DatePart(day, {{Fecha de vencimiento}}
) - 1), {{Fecha de vencimiento}}) AS MonthStartDate
DateAdd(day, -(DatePart(day, DateAdd(mm, 1, {{Fecha de vencimiento}}
))), DateAdd(month, 1, {{Fecha de vencimiento}})) AS MonthEndDate
Estos últimos cuatro son para bases de datos con @@DATEFIRST
establezca el domingo como día de la semana. Puede comprobar si su día de la semana está establecido en domingo si observa el valor del día de la semana que aparece arriba (`DatePart(weekday, {{Fecha de vencimiento}}``) para un domingo = 1. (Si es = 7 y para un lunes = 1, es probable que haya que cambiarlos).
DateAdd(day, -(IIF(DatePart(weekday, {{Fecha de vencimiento}}
) = 1, 8, DatePart(weekday, {{Fecha de vencimiento}})) - 2), {{Fecha de vencimiento}}
) AS WeekStartDateMondayDateAdd(day, 6, {{Fecha de inicio de la semanalunes}}) AS WeekEndDateMonday
DateAdd(day, -(DatePart(weekday, {{Fecha de vencimiento}}
) - 1), {{Fecha de vencimiento}}
) AS WeekStartDateSundayDateAdd(day, 6, {{Fecha de inicio de la semanaDomingo}}) AS WeekEndDateSunday`
A continuación se muestran los resultados.