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