tblDurations
TaskID : Number
Assigned Date : Date/Time
Start Date : Date/Time
End Date : Date/Time
SELECT TaskID,
Count(TaskID) As [Task Count],
Min(Nz([Start Date], [Assigned Date])) as [Min of Start Date],
Max([End Date]) as [Max of End Date],
DateDiff("d", Min(Nz([Start Date], [Assigned Date])), Max([End Date])) + 1 as [Date Range]
FROM tblDurations
GROUP BY TaskID
Вывод:
TaskID Task Count Min of Start Date Max of End Date Date Range
1 3 16/08/2018 10/01/2019 1
2 2 4/09/2017 07/09/2017 4
3 3 13/09/2017 08/01/2018 118
Я получаю случайную строку, как показано в строке 1 (TaskID = 1), которая должна равняться 148!
После большой проверки яопределил, что это происходит для дат, которые неоднозначны.Под этим я подразумеваю, где значения дня и месяца могут быть перепутаны друг с другом.
Я нахожусь в Австралии, где дата даты составляет дд / мм / гггг.Однако я полагаю, что функция datediff запутывает порядок дня и месяца и возвращает ноль (плюс мой 1 = 1).
Как мне решить эту проблему?