从 Sybase 中非常长的字符串名称列中获取日期
Picking up the date from very long string name column in Sybase
我在 Sybase 中使用这些 table 具有列 'ID'、'File_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 08012014
您可以使用 SUBSTRING
和 PATINDEX
来查找 start_index 日期:
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 数据库,所以如果这不起作用请告诉我。
我在 Sybase 中使用这些 table 具有列 'ID'、'File_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 08012014
您可以使用 SUBSTRING
和 PATINDEX
来查找 start_index 日期:
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 数据库,所以如果这不起作用请告诉我。