【发布时间】:2021-12-10 17:55:54
【问题描述】:
我在使用此查询时收到此错误。有没有办法防止这个错误?
这是错误
遇到除以零错误。
这里是查询:
UPDATE T_SG_WICA_RISK_DETAILS
SET EarnedPercentage = case when Policy_ExpiryDate < (getdate()-1) then '1'
else datediff(day, Policy_EffectiveDate,(getdate()-1)) /
datediff(day, Policy_EffectiveDate,Policy_ExpiryDate)
end
【问题讨论】:
-
请只标记您真正使用的RDBMS。 SQL Server 和 MySQL 是完全不同的产品。至于错误,它告诉你问题;你不明白的错误怎么办?
-
我猜你有一行有效日期和到期日期在同一天,所以除数中的日期差异返回零
-
@Larnu 知道了。至于错误,我不确定如何解决它,因为除数不应该返回零。我已经查看了其他一些关于此的主题,但我仍然不确定。
-
正如@DaveSmith 提到的,当
Policy_EffectiveDate和Policy_ExpiryDate是同一日期时,除法将是0。显然有至少一行是这样的。 -
@Larnu @DaveSmith 好吧,似乎有些行
Policy_EffectiveDate和Policy_ExpiryDate的日期相同。除数处的 NULLIF 解决了这个问题。谢谢