MS Access DateDiff不明确的日期(按月月份顺序)返回不良结果

时间:2019-02-26 06:05:46

标签: ms-access datediff

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)。

我该如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

问题不是日期含糊。仔细观察,我发现各种不明确的日期返回了错误的值。

问题是我正在像这样使用Nz函数:

Min(NZ([开始日期],[分配日期])

我的意思是取开始日期的最小值,但是如果开始日期为NULL,则取分配日期的最小值。

这是什么工作:

Nz(Min([StartDate],Min(Assigned Date))

全部固定。

请问这个问题。为什么只有有时候呢?因为与开始日期为NULL或不为NULL无关。

感谢大家的反馈!