Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS найти дату в строке  [new]
Santa89
Member

Откуда:
Сообщений: 1520
Никак не могу выделить из строки первую попавшуюся дату средствами SSIS, хотя там есть функция SUBSTRING. Помогите плиз.
Строка такого вида: "за период c 01.06.2012 по 30.06.2012"
Из неё нужно получить 01.06.2012
20 ноя 13, 04:42    [15158793]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
SandalTree
Member

Откуда: Перехлёсток восьми батог
Сообщений: 28146
Santa89
Никак не могу выделить из строки первую попавшуюся дату средствами SSIS, хотя там есть функция SUBSTRING. Помогите плиз.
Строка такого вида: "за период c 01.06.2012 по 30.06.2012"
Из неё нужно получить 01.06.2012

А там всегда будет это " c "?
Если нет тогда другой вопрос: могут-ли быть другие цифры перед датой?
Всегда-ли дата будет в таком формате?

Вобщем вам как-то нужно сначала опознать дату в строке.
Что-то типа такого
DECLARE @s nvarchar(max) = 'за период c 01.06.2012 по 30.06.2012';
SELECT SUBSTRING(@s,PATINDEX('%.__.%' , @s )-2,10)
20 ноя 13, 06:57    [15158836]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
Santa89
Member

Откуда:
Сообщений: 1520
SandalTree,

да, выгрузка генерится именно в таком виде со всеми предлогами, меняются только цифры в дате, формат всегда один
20 ноя 13, 07:11    [15158845]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
Santa89
Member

Откуда:
Сообщений: 1520
SandalTree,

проблема в том, что это надо сделать на SSIS прямо в DataFlow, следовательно PatIndex функции там не будет..
20 ноя 13, 07:13    [15158846]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
Santa89
Member

Откуда:
Сообщений: 1520
Кроме SUBSTRING([Период],13,10) ничего не могу придумать
20 ноя 13, 07:14    [15158847]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
Santa89
SandalTree,

проблема в том, что это надо сделать на SSIS прямо в DataFlow, следовательно PatIndex функции там не будет..


почему нельзя использовать PATINDEX?
мне кажется можно обработать в SSIS строку sql- скриптом
как вам предлагали типа (OLE DB Command)
select SUBSTRING(@str,PATINDEX('%[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]%',@str),10)
20 ноя 13, 07:25    [15158848]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
Santa89
Кроме SUBSTRING([Период],13,10) ничего не могу придумать


Если у Вас строка постоянно такого формата так тогда и заморачиваться нечего а если она разная то так не прокатит
20 ноя 13, 07:28    [15158850]     Ответить | Цитировать Сообщить модератору
 Re: SSIS найти дату в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
SSIS: Transform data using Regex
20 ноя 13, 10:11    [15159261]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить