我将数据从CRM中提取到报告系统中。
不幸的是,CRM的开发人员认为将date
存储为string
是个好主意,然后不对该字段进行验证。
我正在尝试这样做MAX(Convert(datetime,Action.DateOfAction, 102))
;但是,因为有一些无效数据,我得到一个超出范围的错误。
我该如何解决这个问题?我不能简单地修复数据,因为我们偶尔会得到一些用户输入的无效数据,而且我无法修复应用程序,因为我没有源代码。
由于
伊恩
答案 0 :(得分:2)
您需要确定如何处理不良数据,但看起来您想要IF ISDATE
IF ISDATE(Action.DateOfAction) //do whatever
ELSE //Handle Bad data
答案 1 :(得分:0)
这取决于您的要求,但也有其他选择。 艾伦给了一个好的,另一个可以用try catch。
通过一般方法,我可以创建一个视图或计算列,并使用isdate为我提供日期,如果无法“解析”,则返回null。
警告,设置日期格式/语言/本地化更改isdate评估。