Как сравнить две даты в силовом запросе? - PullRequest
2 голосов
/ 09 мая 2019

У меня есть столбец с именем status, сравниваемый между датой окончания задачи и каждым месяцем в году, чтобы вернуть 1 для true, 0 для false

Я использовал это:

Status = IF ([EndDate].[Date] <= [Month].[Date] , 1, 0)

Форматирование даты для [Конечная дата] и [Месяц]: март 2001 года (ММММ гггг)

Проблема: если Дата окончания = май 2019 и Месяц = ​​май 2019, она вернула 0, но должна вернуть 1

Фактический результат enter image description here

Ожидаемый результат

enter image description here

1 Ответ

1 голос
/ 09 мая 2019

Это правильная логика / синтаксис, дата, которую вы используете, просто визуально отформатирована как MMMM гггг, является ли фактическая дата в формате дд / мм / гггг? как вы можете пытаться сравнить следующее

[Конечная дата]. [Дата] = 01/05/2001 до [Месяц]. [Дата] 25/05/2001

Что вы можете сделать, это просто извлечь месяц и год, например

МЕСЯЦ ([Конечная дата]. [Дата]) и ГОД ([Конечная дата]. [Дата]) и МЕСЯЦ ([Месяц]. [Дата]) и ГОД ([Месяц]. [Дата])

Таким образом, это будет IF (ГОД ([Конечная дата]. [Дата]) = ГОД ([Месяц]. [Дата]) && MONTH ([Конечная дата]. [Дата]) = МЕСЯЦ ([Месяц]. [Дата ]), 1, 0)

...