此选择语句为我提供了算术错误消息:

SELECT CAST(FLOOR((CAST(LeftDate AS DECIMAL(12,5)))) AS DATETIME), LeftDate
FROM Table
WHERE LeftDate > '2008-12-31'

尽管这一项有效:
SELECT CAST(FLOOR((CAST(LeftDate AS DECIMAL(12,5)))) AS DATETIME), LeftDate
FROM Table
WHERE LeftDate < '2008-12-31'

数据可能有问题吗(我已经检查了空值,但没有一个)?

最佳答案

发现问题出在日期设置为9999-12-31时(可能要处理的小数点很大)。从十进制更改为浮点,并且所有事物都像魅力一样起作用。

07-24 09:16