此选择语句为我提供了算术错误消息:
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时(可能要处理的小数点很大)。从十进制更改为浮点,并且所有事物都像魅力一样起作用。