【发布时间】:2019-07-19 15:09:20
【问题描述】:
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!
经过大量检查后,我确定这发生在不明确的日期上。我的意思是,日期和月份值可能会相互混淆。
我在澳大利亚,日期格式为 dd/mm/yyyy。但是我相信 datediff 函数会混淆日期和月份的顺序并返回零(加上我的 1 = 1)。
我该如何解决这个问题?
【问题讨论】:
-
如果是由于您所谓的模糊日期之间的日期,您也会遇到 TaskID 2 的问题,请附上所有 Task ID 的所有数据。
-
也许您的澳大利亚同胞 Allen Browne 可以提供帮助 allenbrowne.com/ser-36.html
-
@Rene 你走在正确的轨道上。我已经过度简化了我的例子。我现在在原始帖子中进行了扩展。看我的回答。