2015-10-29 4 views
1

Я хочу, чтобы выражение SSIS дало мне воскресную дату на прошлой неделе.Последнее воскресенье на прошлой неделе в SSIS

Соответствующий SQL-запрос сервера выглядит следующим образом:

выберите новообращенный (дата, DATEADD (WK, DATEDIFF (WK, 6, конвертировать (дата, @ report_dt)), -1))

Я хочу такой же результат в выражении SSIS.

Благодаря

ответ

0

Если предположить, что дату проводится в переменной с именем report_dt, это работает для меня:

(DT_DATE)LEFT((DT_WSTR, 30)DATEADD("Day", -1 * (DATEPART("Weekday", @[User::report_dt]) + 7), @[User::report_dt]), 10) 

Однако не уверен, если это область безопасно - но она работает в Великобритании.

+0

Привет, Я смог увидеть функцию RIGHT в папке с функциями String в SSIS, но не смог распознать функцию LEFT. Я что-то упускаю? –

+0

Я использую последнюю версию, так что, возможно, это новая функция, как об использовании SUBSTRING вместо этого? –

0

Это даст вам воскресенье на прошлой неделе с помощью переменной report_dt:

(DT_DBDATE)DATEPART("dw",@[User::report_dt]) == (DT_DBDATE)1 ? @[User::report_dt] : DATEADD("day",-(DATEPART("dw",@[User::report_dt]) - 1),@[User::report_dt]) 

Это отлиты в DT_DBTIME так только дата возвращается.

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