sql-server-2008 – 在SQL Server 2008中查找无效日期

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 在SQL Server 2008中查找无效日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有300.000行表;其中一列是varchar()但它确实包含日期xx / xx / xxxx或x / x / xxxx或类似的.但执行以下测试会产生错误
SELECT CAST(MyDate as Datetime) FROM MyTable

问题是它没有告诉我哪一行……

我通过试验错误执行了一系列“手动”更新并执行了简单的更新来修复这些更新,但必须有一些奇怪的值需要删除或修复.

例如,我执行了一个修复了大约40行的简单测试:

UPDATE MyTable SET MyDate = REPLACE(MyDate,'/000','/200') FROM MyTable WHERE MyDate like ('%/000%’)
UPDATE MyTable SET MyDate = REPLACE(MyDate,'/190','/199') FROM MyTable WHERE MyDate like ('%/190%’)

这修复了很多奇怪的行,其日期类似于01/01/0003等. (日期范围从1998年到2010年).

但是,我想知道上面的选择中哪些行失败了.

什么是最好的打印方式,所以我可以删除它们,编辑它们或看看该怎么做?谢谢.

解决方法

SELECT
    *
FROM
   MyTable
WHERE
    ISDATE(MyDate) = 0
原文链接:https://www.f2er.com/mssql/76589.html

猜你在找的MsSQL相关文章