Первый ответ будет делать это, однако я считаю, что вы хотите построить строку SQL, Так что мой запрос будет включать в кавычки
Declare @tm varchar(max) = 'Between 0 and 0:15'
Declare @ST varchar(10), @ET varchar(10)
Declare @rep varchar(max)
--SET @rep = REPLACE(@tm,'0','''00:00:00''');
SET @TM = LTRIM(RTRIM(SubString(@TM, CHARINDEX(' ', @TM), LEN(@TM)))) -- Remove Between
SET @ST = LTRIM(RTRIM(SubString(@TM, 1, CHARINDEX(' ', @TM)))) -- Get Start Time
SET @TM = LTRIM(RTRIM(SubString(@TM, CHARINDEX(' ', @TM) + 4, LEN(@TM)))) -- Remove AND
SET @ET = LTRIM(RTRIM(@TM));
SET @REP = 'Between ''' + Convert(varchar(8), convert(time, case when IsNumeric(@ST) = 1 then REPLACE(@ST,'0','00:00:00') else @ST end)) +
''' and ''' + Convert(varchar(8), convert(time, case when IsNumeric(@ET) = 1 then REPLACE(@ET,'0','00:00:00') else @ET end)) + ''''
PRINT(@rep);
я показал каждый шаг удаления слова, и я не предполагал, что она всегда будет Between
или что только первый раз может быть 0
но последний слишком
что делать, если я/р 'Между 0:15 и 0: 30' –
@NoDisplayName, очевидно, это будет «Между« 00: 15: 00 »и« 00: 30: 00'' – MAK
Ничего не видно, если вы не заявите об этом. Что относительно 'Между 7 и 1'? Выбросить ошибку? –