首页 > 解决方案 > 提取字符串中两个字符之间的字符串

问题描述

我有一组具有日期时间值的字符串,我想提取它们。我不确定这是否可以使用 T-SQL。

CREATE TABLE #Temp (
BLOB_NM VARCHAR(100)
);

INSERT INTO #Temp
SELECT 'products_country_20200528102030.txt'
UNION ALL
SELECT 'products_territory_20190528102030.txt'
UNION ALL
SELECT 'products_country_2020-05-20_20200528102030.txt'
;

预期成绩:

20200528102030
20190528102030
20200528102030

标签: sqlsql-serverstringtsqlazure-sql-database

解决方案


对于这个数据集,字符串函数应该这样做:

select blob_nm, substring(blob_nm, len(blob_nm) - 17, 14) res from #temp

这个想法是从字符串的末尾倒数,并捕获扩展之前的 14 个字符(由字符串的最后 4 个字符表示)。

DB Fiddle 上的演示

blob_nm | 资源           
:------------------------------------------------------------ | :-------------
products_country_20200528102030.txt | 20200528102030
products_territory_20190528102030.txt | 20190528102030
products_country_2020-05-20_20200528102030.txt | 20200528102030

推荐阅读