Saltar al contenido

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.

Tabla de fechas

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 WeekEndDateMondayDateAdd(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.

Resultados