我有一个名为DOB
的专栏,其中包含出生日期,但版本质量较差。有些是标准的12/23/1987
,有些是1/2/1976
,有些10/3/1988
和3/12/1954
类型格式。
我希望将它们全部标准化为01/03/1987
,所以基本上都是mm/dd/yyyy
格式。有什么想法吗?
答案 0 :(得分:1)
尝试这样的事情......
DECLARE @Dates TABLE( DOB VARCHAR(20))
INSERT INTO @Dates VALUES
('12/23/1987'), ('1/2/1976'),
('3/12/1954'), ('10/3/1988')
SELECT DOB
,CASE WHEN ISDATE(DOB) = 1
THEN CONVERT(VARCHAR(10), CAST(DOB AS DATETIME), 101)
ELSE NULL
END AS Formatted
FROM @Dates
╔════════════╦════════════╗
║ DOB ║ Formatted ║
╠════════════╬════════════╣
║ 12/23/1987 ║ 12/23/1987 ║
║ 1/2/1976 ║ 01/02/1976 ║
║ 3/12/1954 ║ 03/12/1954 ║
║ 10/3/1988 ║ 10/03/1988 ║
╚════════════╩════════════╝