SSIS - приведение даты для использования в выражении - PullRequest
3 голосов
/ 30 июня 2010

Я хочу преобразовать дату в формат ISO и использовать ее в качестве строки в выражении в SSIS.

Это то, что я печатаю в T-SQL

select convert(varchar(8), GetDate(), 112)

иэто то, что я получаю обратно

20100630

Моя цель - создать архивную папку на основе даты.У меня есть задача File System Task создания сортированной папки, я могу это сделать ... Мне просто нужно иметь возможность преобразовать дату в строку, чтобы я мог ее использовать.

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 05 февраля 2014

Старый вопрос, более точный ответ, из комментария Адриана здесь :

Попробуйте выполнить промежуточное приведение к типу DT_DBDATE.Приведение к WSTR дает строку в формате "ГГГГ-ММ-ДД", которая легко убирается:

REPLACE ((DT_WSTR, 200) (DT_DBDATE) GETUTCDATE (), "-", "")

Или используйте без REPLACE, чтобы получить YY-MM-DD

2 голосов
/ 30 июня 2010

В SSIS для выполнения вы используете приведение DT_STR или DT_WSTR.Вот несколько примеров:

(DT_STR, 4, 1252)YEAR(GETDATE()) + 
RIGHT("0" + (DT_STR, 2, 1252)MONTH(GETDATE()), 2) + 
RIGHT("0" + (DT_STR, 2, 1252)DAY(GETDATE()), 2)

или

(DT_WSTR, 4)YEAR(GETDATE()) + 
RIGHT("0" + (DT_WSTR, 2)MONTH(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR, 2)DAY(GETDATE()), 2)

Для получения дополнительной информации см. Документацию MSDN .

2 голосов
/ 30 июня 2010

Чтобы добавить к другим ответам, вот справочное руководство, которое я часто использую:

http://sqlis.com/sqlis/post/Expression-Date-Functions.aspx

2 голосов
/ 30 июня 2010

Вам нужно будет добавить выражение:

RIGHT((DT_WSTR, 4) DATEPART("yyyy", GetDate()), 4) + 
RIGHT("0" + (DT_WSTR,2)DatePart("mm", GetDate()), 2) + 
RIGHT("0" + (DT_WSTR,2)DatePart("dd", GetDate()), 2)

Это выражение создаст результат, к которому вы стремитесь.

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