【问题标题】:Format column throw exception when this column contains null value当该列包含空值时格式化列抛出异常
【发布时间】:2019-02-01 01:50:50
【问题描述】:

我有一个命名 MVorders 的表。它包含一个类型为日期/时间的列(orderdate),并且它包含空值,然后格式化列抛出异常。

例如sql : SELECT format(MVorders.orderdate, "yyyy-MM-dd 00:00:00") FROM MVorders

环境: UCanAccess 4.0.4。

谢谢!

参考:



【问题讨论】:

    标签: ms-access ucanaccess


    【解决方案1】:

    SELECT IIF(ISNULL(orderdate), '', Format(orderdate, 'yyyy-MM-dd 00:00:00')) AS FormattedOrderDate FROM MVorders

    【讨论】:

    • 这是错误的。参考: > IIf 总是同时计算 truepart 和 falsepart,即使它只返回其中一个。因此,您应该注意不良副作用。例如,如果计算 falsepart 导致除以零错误,即使 expr 为 True,也会发生错误。
    • 这似乎只是ucanaccess缺少空值判断。
    • 修改为Format(Nz(orderdate,Date()), 'yyyy-MM-dd 00:00:00')。也可能只使用Format(Nz(orderdate), 'yyyy-MM-dd 00:00:00') 就足够了。
    【解决方案2】:

    您在 FORMAT 函数的 UCanAccess 实现中遇到了一个已知缺陷。已向 UCanAccess 开发团队报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      相关资源
      最近更新 更多