我正在使用SQL Server 2008
我收到了几种格式的数据。日期是varchar(10) 例如:
1> 951116 = YYMMDD
2 - ; 122487 = MMDDYY
存在具有空白值的行或某些行中包含一些文本。
我想检查它是否是日期并转换它,否则它可以为空。
我一直在使用以下代码,但它只允许我转换第一个示例中的日期并在第二个示例中引发错误。
create view v2 as
SELECT name
,CASE WHEN LEN(DOB) < 6 THEN '' ELSE CONVERT(VARCHAR,
CAST(CAST('19' + SUBSTRING(DOB, 5, 2) + SUBSTRING(DOB, 1, 2) + SUBSTRING(DOB, 3, 2) AS VARCHAR(10)) AS DATE), 110) END AS OWNR_DOB
FROM customer
我想编写一个函数并将其设置为YYYYMMDD格式。
一个简单的函数,只是将YYMMDD格式转换为YYYYMMDD并将其他值视为无效或null也可以是一个开始。
感谢任何帮助。