SQL Server 2019-我们有一个nvarchar
列,其中包含不同的日期格式,但是许多列中的数据不仅仅是其中的日期,而且格式不同。
我需要编写一个查询,该查询将返回所有包含除数字以外的其他所有列,“ /”字符,“ \”字符和“-”字符的列。假设Column1
和Table1
的名称,此查询是什么样的?
答案 0 :(得分:1)
在我看来,您正在尝试查找哪些行的日期不正确。 “ \”不是日期值中的有效分隔符,但是我们可以使用REPLACE()函数来解决这个问题。
SELECT *
FROM #Table1
WHERE ISDATE(REPLACE(Column1,'\','/')) = 0;
点击此dbfiddle即可查看其运行情况。
答案 1 :(得分:1)
这将确定Column1包含不在允许的字符中的值的所有情况:
SELECT Column1
FROM Table1
WHERE Column1 LIKE '%[^0-9\/-]%'