Mar*_*ini 8 date sql-server-2008
我有300.000行表; 其中一列是varchar()但它确实包含日期xx/xx/xxxx或x/x/xxxx或类似的.但执行以下测试会产生错误:
SELECT CAST(MyDate as Datetime) FROM MyTable
Run Code Online (Sandbox Code Playgroud)
问题是它没有告诉我哪一行......
我通过试验错误执行了一系列"手动"更新并执行了简单的更新来修复这些更新,但必须有一些奇怪的值需要删除或修复.
例如,我执行了一个修复了大约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%’)
Run Code Online (Sandbox Code Playgroud)
这修复了很多奇怪的行,其日期类似于01/01/0003等.(日期范围从1998年到2010年).
但是,我想知道上面的选择中哪些行失败了.
什么是最好的打印方式,所以我可以删除它们,编辑它们或看看该怎么做?谢谢.
Rob*_*Day 22
SELECT
*
FROM
MyTable
WHERE
ISDATE(MyDate) = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18186 次 |
| 最近记录: |