К сожалению 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
на выбор из реальной таблицы.