我的当前日期存储为varchar(1000)
,格式不一致。即yyyy-mm-dd
和dd-mm-yyyy
等。
我可以运行哪些查询来清理它们,以便它们采用一致的格式,因此我可以将列数据类型从varchar(1000)
转换为date
?
由于
答案 0 :(得分:1)
如果您有许多不同的日期格式(可能包括无效数据),这可能会变得很难看。一种选择是使用CASE
表达式分配新的日期列,以选择正确的格式掩码:
UPDATE yourTable
SET date_col = CASE WHEN date LIKE '[0-9]{2}-[0-9]{2}-[0-9]{4}'
THEN CONVERT(datetime, date, 105)
WHEN date LIKE '[0-9]{4}-[0-9]{2}-[0-9]{2}'
THEN CONVERT(datetime, date) END;
您可以为上述CASE
表达式添加其他日期格式的条件。