如何忽略SQL查询中的错误字符

时间:2010-01-05 23:09:00

标签: sql sql-server character ignore

简短的故事是我有一个带有varchar字段而不是datetime的SQL Server数据库(不要问,这是一个很长的故事,无法修复)。不知何故,我们最近在这些字段中插入了奇怪/随机字符而不是应该存在的字符(NULL,'或YYYY-MM-DD)。像这样:'?+ x',高位ascii字符。

该报告使用此查询来帮助将数据按到可用的内容(此处仅发布相关部分):

SELECT CASE WHEN c.CallStatus = 'Closed' THEN CAST(c.ClosedDate + ' ' + c.ClosedTime as datetime) ELSE NULL END as 'Closed Date'
WHERE CAST(c.closeddate AS DATETIME) BETWEEN  @StartDate AND @EndDate

但是这个新的不良数据令人窒息。

我的问题是:

如何更新查询以忽略错误数据,以便在查找错误数据源时可以运行报告?我的首要任务是让报告正常运行,其次是找到并杀死不良数据的来源。

2 个答案:

答案 0 :(得分:5)

CASE WHEN ISDATE(closeddate) = 1 THEN CAST(c.closeddate AS DATETIME) ELSE NULL END

答案 1 :(得分:0)

看起来都是固定的,而不是很多!这是我的最终结果:

  

AND case WHEN ISDATE(closeddate)= 1   那么过去(c.closeddate AS DATETIME)   @StartDate AND之间的空结束   @EndDate

现在正在追捕!