最小内部日期差异
Minimum inside Date Difference
我在 MS Access Table 中有 3 个字段 A、B 和 C,名为 TBL。我正在尝试使用日期差异函数查找以小时为单位的日期差异。我想找到最小字段 A、B 和字段 C 之间的日期差异。我尝试使用以下代码实现它
SELECT Datediff("h",Min(A,B),C) FROM TBL
上面的函数给我一个错误,在查询表达式中与函数一起使用的参数数量错误。我怎样才能实现上述目标
您可以为此使用 IIF
:
SELECT IIF(DATEDIFF("h", A, C) < DATEDIFF("h", B, C),
DATEDIFF("h", A, C),
DATEDIFF("h", B, C))
FROM TBL
更新:
如果你想要几个小时的小数结果,你可以试试
DATEDIFF("m", A, C) / 60.0
如果你想找到绝对差异,你需要 Abs:
SELECT
*,
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C))) As
HourDiffMin
FROM
TBL
如果 - 不太清楚 - 如果还可以返回 A 和 B 之间的差异,请扩展 IIf 表达式以涵盖此 - 非常难看:
SELECT
*,
IIf(Abs(DateDiff("h", A, B)) <
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C))),
Abs(DateDiff("h", A, B)),
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C)))) As
HourDiffMin
FROM
TBL
我在 MS Access Table 中有 3 个字段 A、B 和 C,名为 TBL。我正在尝试使用日期差异函数查找以小时为单位的日期差异。我想找到最小字段 A、B 和字段 C 之间的日期差异。我尝试使用以下代码实现它
SELECT Datediff("h",Min(A,B),C) FROM TBL
上面的函数给我一个错误,在查询表达式中与函数一起使用的参数数量错误。我怎样才能实现上述目标
您可以为此使用 IIF
:
SELECT IIF(DATEDIFF("h", A, C) < DATEDIFF("h", B, C),
DATEDIFF("h", A, C),
DATEDIFF("h", B, C))
FROM TBL
更新:
如果你想要几个小时的小数结果,你可以试试
DATEDIFF("m", A, C) / 60.0
如果你想找到绝对差异,你需要 Abs:
SELECT
*,
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C))) As
HourDiffMin
FROM
TBL
如果 - 不太清楚 - 如果还可以返回 A 和 B 之间的差异,请扩展 IIf 表达式以涵盖此 - 非常难看:
SELECT
*,
IIf(Abs(DateDiff("h", A, B)) <
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C))),
Abs(DateDiff("h", A, B)),
IIf(Abs(DateDiff("h", A, C)) < Abs(DateDiff("h", B, C)),
Abs(DateDiff("h", A, C)), Abs(DateDiff("h", B, C)))) As
HourDiffMin
FROM
TBL