Как отделить дату от строки? - PullRequest
1 голос
/ 10 ноября 2011

Привет, у меня есть строка llike,

"01-15-09 с коэффициентом 0,8"

Я хотел отделить эту строку следующим образом,

1] дата как 01-15-09 2] Коэффициент 0,8

ПРИМЕЧАНИЕ: длина строки не фиксирована.

так как мы можем отделить данные в виде # 1 & #2?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Для получения даты вы можете использовать PATINDEX().

declare @yourString varchar(100)
set @yourString = 'on 01-15-09 with a factor of 0.8'

select substring(@yourString,
            patindex('%[0-9][0-9]-[0-9][0-9]-[0-9][0-9]%', @yourString),
            8)

Чтобы получить «фактор хх», вы можете сделать:

select substring(@yourString,
        patindex('%with a%', @yourString) + 7,
        20)
1 голос
/ 10 ноября 2011
declare @txt varchar(max)
set @txt = 'on 01-15-09 witha factor of 0.8'

select cast(substring(@txt, patindex('% [0-9][1-9]-%', @txt), 9) as date) [date], 
cast(right(@txt, patindex('%_ %', reverse(@txt))) as decimal(9,1)) Factor

Результат:

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