我需要进行简单的日期比较-
datediff(dd, convert(datetime, lastUpdate, 100), getDate()) < 31
但它在以下方面失败convert():
Conversion failed when converting datetime from character string.
显然,在该字段中有一些它不喜欢的东西,并且由于记录太多,我不能仅仅通过查看就知道。如何正确清理整个日期字段,以确保它不会失败convert()?这是我现在所拥有的:
select count(*)
from MyTable
where
isdate(lastUpdate) > 0
and datediff(dd, convert(datetime, lastUpdate, 100), getDate()) < 31
8
将CASE和ISDATE放在CONVERT()函数内。
SELECT COUNT(*) FROM MyTable
WHERE
DATEDIFF(dd, CONVERT(DATETIME, CASE IsDate(lastUpdate)
WHEN 1 THEN lastUpdate
ELSE '12-30-1899'
END), GetDate()) < 31
用'12-30-1899'您选择的默认日期替换。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。