【发布时间】:2019-12-13 22:21:44
【问题描述】:
我需要从列名 Filename 的字符串中找到一个连续的日期。该字符串中包含其他带有破折号的数字(或其他字符,例如下划线),但我只需要连续数字
需要从文件名中提取日期。 (我知道数据只是哇,多个供应商,多种文件命名格式是原因。)
这个问题与这个问题类似,但它正在寻找具有不同要求的不同内容:TSQL: Find a continuous number in a string
期望的结果:
实际结果:
测试代码:
DROP TABLE #dob
CREATE TABLE #dob (
FILENAME VARCHAR(MAX)
,StudentID INT
)
INSERT INTO #dob
( FILENAME )
VALUES
('Smith John D, 11-23-1980, 1234567.pdf')
,('Doe Jane, _01_22_1980_123456.pdf')
,('John Doe, 567891.pdf' )
--This is what I tried.
SELECT FILENAME
, substring(FileName, patindex('%[0-9][%-%][%_%][0-9][0-9][0-9][0-9][0-9]%', FileName), 8) AS dob
FROM #dob
【问题讨论】:
标签: sql sql-server tsql sql-server-2016