我有一个日期列,其中日期存储为字符串,例如 20120817。不幸的是,填充此列的文本表单字段是自由文本,因此我不能保证偶尔会在此列中显示“E”或“whatever”。而且已经有不少了。
我需要做的是将字符串列转换为日期列。当然,转换会拒绝随机字符串字符。有什么方法可以创建一个派生列,它不仅可以转换字符串,还可以排除非日期可转换字符串?
如果表中没有非日期可转换字符串,则以下内容将起作用:
ADD [convertedDate] AS CONVERT(DATE, [stringDate], 102)
它确实在我创建的测试表中完美运行。但是当我引入其他不可转换的字符串时,由于明显的原因,我收到了可怕的“从字符串转换日期和/或时间时转换失败”错误。
是否有一个函数可以捕获我可以添加到这个派生列代码中的不可转换元素?还是视图或函数是处理此问题的唯一或最佳方法?我很幸运地玩了 IsDate() 。
谢谢!