Как мне получить среднюю часть строки? - PullRequest
0 голосов
/ 10 января 2012

Я пытаюсь получить даты из этого столбца varchar (512):

CAM; Initial period payment ($3249.58) 01/01/2012 - 01/31/2012; INITIAL Pmt.

Глядя, чтобы вернуть значение 01/01/2012 как «Дата начала» и 01/31/2012 как «Дата окончания».

Я читал о вещах и parsename, но я довольно плохо знаком с sql и чувствую, что просто запутался.

1 Ответ

0 голосов
/ 10 января 2012

К сожалению SUBSTRING операции в SQL всегда хрупкие.Вот кое-что, что сработает, если все строки-кандидаты отформатированы одинаково.Я уверен, что вы улучшите это с небольшим количеством проб и ошибок:

DECLARE @str varchar(1000) = 'CAM; Initial period payment ($3249.58) 01/01/2012 - 01/31/2012; INITIAL Pmt.'

SELECT
    CONVERT(date, SUBSTRING(@str, CHARINDEX(')', @str) + 2, 10)) StartDate,
    CONVERT(date, SUBSTRING(@str, CHARINDEX('-', @str, CHARINDEX(')', @str, 12)) + 2, 10)) EndDate

Вы можете заменить использование переменной @str на выбор из реальной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...