当该列包含空值时格式化列抛出异常
Posted
技术标签:
【中文标题】当该列包含空值时格式化列抛出异常【英文标题】: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。
谢谢!
参考:
【问题讨论】:
【参考方案1】:SELECT IIF(ISNULL(orderdate), '', Format(orderdate, 'yyyy-MM-dd 00:00:00')) AS FormattedOrderDate FROM MVorders
【讨论】:
这是错误的。参考: > IIf 总是同时计算 truepart 和 falsepart,即使它只返回其中一个。因此,您应该注意不良副作用。例如,如果计算 falsepart 导致除以零错误,即使 expr 为 True,也会发生错误。 IIF Function 这似乎只是ucanaccess缺少空值判断。 修改为Format(Nz(orderdate,Date()), 'yyyy-MM-dd 00:00:00')
。也可能只使用Format(Nz(orderdate), 'yyyy-MM-dd 00:00:00')
就足够了。【参考方案2】:
您在 FORMAT
函数的 UCanAccess 实现中遇到了一个已知缺陷。已向 UCanAccess 开发团队报告。
【讨论】:
以上是关于当该列包含空值时格式化列抛出异常的主要内容,如果未能解决你的问题,请参考以下文章