Выберите часть поля после последнего появления определенного символа в MSSQL

У меня есть поле, которое содержит журнал изменений. каждый раз добавляет дату в квадратных скобках.

Мне нужно извлечь последний бит из поля после последнего], чтобы положить его в таблицу.

Я пытался это, но это не работает...

select
SUBSTRING(BUG.CloseDescription,0,PATINDEX(']',bug.CloseDescription)) as myString
from Bug

Есть идеи?

Спасибо

2 ответа

select
right(BUG.CloseDescription,charindex(']',reverse(BUG.CloseDescription))-1)
from Bug
declare @field varchar(100)
set @field = 'test [2012-02-10 10:00] wibble'
select right(@field, charindex('[',@field))

или чтобы получить дату

declare @field varchar(100)
set @field = 'test [2012-02-10 10:00] wibble'
select substring(@field, charindex('[',@field)+1, charindex(']',@field)-charindex('[',@field)-1)
Другие вопросы по тегам