Separate Character from date on filename sql 表达式

Separate Character from date on filename sql expression

我只是想知道如何使用 SQL 表达式将字符与文件名分开,例如文件名是 IED_2015Nov020914.AF 我想分开或拆分 "Date" 中的“2015Nov02” SQL 表达式的 where 子句。我尝试使用名为 "cross apply" 的函数,但不幸的是它在这里不起作用是我目前的工作

where (patindex('%[0-9]%', File_name) > "2018-Nov-12"));

谢谢

最简单的方法是定位 _ 个字符和子字符串 9 个字符。

CREATE TABLE #tab(filename VARCHAR(100));

INSERT INTO #tab VALUES ('IED_2015Nov020914.AF');

SELECT SUBSTRING(filename, CHARINDEX('_',filename)+1, 9) AS result
FROM #tab;

LiveDemo

警告:这仅在您的数据具有固定格式时有效: ...._yyyyMMMdd....

如果需要,您可以 CAST 迄今为止的结果:

SELECT CAST(SUBSTRING(filename, CHARINDEX('_',filename)+1, 9) AS DATE) AS result
FROM #tab;

LiveDemo2