2010-06-02 4 views
4

Мне просто нужно было написать самое неприятное выражение в производном столбце SSIS, чтобы получить даты, отформатированные как «01-JAN-2010».     Это lookes так:Есть ли приличная техника для форматирования даты в формате SSIS Derived Column?

            alt text

Там должен быть лучше ... не так ли?

+0

+1 для использования работы redonkulous haha ​​ – ajdams

ответ

5

Рассмотрите возможность использования компонента сценария, а затем Row.stringcol = Row.datecol.ToString("dd-MMM-yyyy"), чтобы заполнить столбец новой строки в потоке данных.

5

Если вы хотите использовать выражения, вы можете использовать это вместо:

RIGHT ("0" + (DT_WSTR, 2) ДЕНЬ (ASSIGNMENT_BEGIN_DATE), 2) + "-" + SUBSTRING ("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", (3 * МЕСЯЦ (ASSIGNMENT_BEGIN_DATE)) - 2, 3) + (DT_WSTR, 4) ГОД (ASSIGNMENT_BEGIN_DATE)

Не сказал, что это было лучше. Это просто разные и короткие. Используйте сценарий, как предложил Кейд, если вам нужен лучший контроль.

3

Хорошо, теперь я чувствую себя как ослик. Простое решение, чтобы сделать мой источник Data отборный заявление, в котором я просто обрабатывать этот столбец так:

        SELECT to_char(assignment_begin_date, 'dd-MON-yyyy') assignment_begin_date FROM ...

РСУБД Oracle, кстати.

Тогда мне не нужно делать производный столбец или скрипт.

У меня есть самоубийство, чтобы не думать об этом раньше. Спасибо всем за помощь.

+0

Предполагалось, что вы выходите из SQL Server (у которого нет очень простого способа сделать этот конкретный формат), и я написал предложение о его форматировании по пути но потом решил, что делать это в T-SQL все еще слишком грязно. Я предполагаю, что вы не собираетесь в SQL Server, потому что тогда я бы спросил, почему вы форматируете эту дату в тексте вообще. –

+0

Спасибо, Кейд, и извините, мой шутник потратил ваше время. Это происходит в плоском файле, поэтому требуется необычное форматирование. – theog

+0

Так что даже не пропуская SQL Server? –

Смежные вопросы