当该列包含空值时格式化列抛出异常

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 开发团队报告。

【讨论】:

以上是关于当该列包含空值时格式化列抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

DataTable - 附加附加列抛出一些异常错误

该列不能包含空值。 SqlCE 异常

Cron表达式

Cron表达式

python自定义异常抛出接受多个数值

java中如果在关闭Socket时发生一个I/O错误,则会抛出一个啥异常?