1
我在tbMyTable中有一个列startDate,它被错误地设置为varchar。本专栏中的大部分数据都很好,但使用多种日期时间格式。表格的几行在列中只有垃圾。使用多种格式时,将varchar列转换为datetime
请帮我写一个sql脚本,它将varchar(50)中的列转换为可以为空的DateTime - 保存可转换的数据并将坏数据设置为null。
肯
我在tbMyTable中有一个列startDate,它被错误地设置为varchar。本专栏中的大部分数据都很好,但使用多种日期时间格式。表格的几行在列中只有垃圾。使用多种格式时,将varchar列转换为datetime
请帮我写一个sql脚本,它将varchar(50)中的列转换为可以为空的DateTime - 保存可转换的数据并将坏数据设置为null。
肯
检查这个T-SQL脚本(其作品具有不同的字符串格式日期):
SELECT CASE WHEN ISDATE(a.field) = 1 THEN CONVERT (DATETIME, a.field, 101) ELSE NULL END field
FROM (
SELECT '2012-06-06' as field
UNION
SELECT null as field
UNION
SELECT '2012-06-06asdad' as field
UNION
SELECT '2012/06/06' as field
) a
对于CONVERT功能检查这个LINK的更多信息。功能ISDATE在有效日期时返回1。
什么版本的SQL Server?什么格式?如果将'dd/mm/yyyy'和'mm/dd/yyyy'混合在一起,这实际上并不可行。 –
你在说多少数据?导出表格,使用适当的脚本语言进行处理并再次导入它可能是有意义的。 – marceljg