Tsql 从Sybase中的超长字符串名称列中提取日期
我在Sybase中使用这些表,该表具有列“ID”,“File\u Name” 表1Tsql 从Sybase中的超长字符串名称列中提取日期,tsql,sybase,Tsql,Sybase,我在Sybase中使用这些表,该表具有列“ID”,“File\u Name” 表1 IDS File_Name_Attached 123 ROSE1234_abcdefghi_03012014_04292014_190038.zip 456 ROSE1234_abcdefghi_08012014_04292014_190038.zip 我所需要的只是选择文件名中给出的第一个日期 所需: IDS Dates 123 03012014 456 080
IDS File_Name_Attached
123 ROSE1234_abcdefghi_03012014_04292014_190038.zip
456 ROSE1234_abcdefghi_08012014_04292014_190038.zip
我所需要的只是选择文件名中给出的第一个日期
所需:
IDS Dates
123 03012014
456 08012014
您可以使用
SUBSTRING
和PATINDEX
查找日期的开始索引:
CREATE TABLE #table1(IDS int, File_Name_attached NVARCHAR(100));
INSERT INTO #table1
VALUES (123, 'ROSE1234_abcdefghi_03012014_04292014_190038.zip'),
(456, 'ROSE1234_abcdefghi_08012014_04292014_190038.zip');
SELECT
IDS,
[DATES] = SUBSTRING(File_Name_attached,
PATINDEX('%_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_%', File_Name_attached) + 1,
8)
FROM #table1;
警告
我没有用于测试的Sybase DB,因此如果这不起作用,请告诉我。它将作为计划文本提供如何转换为常规日期格式MM/DD/YYYY@Qasim0787
声明@D NVARCHAR(100)='03012014';选择cast(右(@D,4)+子字符串(@D,3,2)+左(@D,2)作为日期时间代码>