2014-11-08 2 views
1

Я устанавливаю переменную в SSIS пакете, и я использую это выражение:Вчерашняя дата в установке пакета SSIS в переменной через выражение

DATEPART("yyyy", GETDATE())*10000 
     + DATEPART("month", GETDATE())*100 
     + DATEPART("day",GETDATE()) 

Выражение даст мне значение переменной типа «ггггммдд». Моя проблема в том, что я хочу вчерашнюю дату.

Например, на 11/1/2014 должно быть 20141031

ответ

4

Вы можете использовать функцию DATEADD ваше выражение будет:

DATEPART("yyyy", DATEADD("day",-1, GETDATE()))*10000 + DATEPART("month", DATEADD("day",-1, GETDATE())) * 100 + DATEPART("day", DATEADD("day",-1, GETDATE())) 
+0

Спасибо. Это решение работало для меня – Mytroy2050

-1

Следующий пример дает дату вчера часы и минуты: 2015-09-06-14-40

(DT_WSTR, 4) Year(dateadd("day",-1,getdate())) + "-" 
+ (month(dateadd("day",-1,getdate())) < 10 ? "0" + (DT_WSTR, 4) month(dateadd("day",-1,getdate())):(DT_WSTR, 4) month(dateadd("day",-1,getdate()))) 
+ "-" +(day(dateadd("day",-1,getdate())) <10 ? "0" + (DT_WSTR, 4) day(dateadd("day",-1,getdate())):(DT_WSTR, 4) day(dateadd("day",-1,getdate()))) 
+ "-" + right("0"+(DT_WSTR,4)datepart("hh",getdate()),2) 
+ "-" + right("0"+(DT_WSTR,4)datepart("mi",getdate()),2) 
3

меньше кода ...

CONVERT(varchar(8), DATEADD(dd,-1,GETDATE()),112) 
+0

Это не работает в выражении - по крайней мере, не в версии 10 (Visual Studio 2008) – Filburt

1

Это даст вчерашнюю дату

(DT_WSTR, 4) YEAR(DATEADD("day",-1,GETDATE())) +RIGHT("0" + (DT_WSTR, 2) DATEPART("MM", DATEADD("day", -1, GETDATE())),2) +RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2)

-1
(DT_WSTR, 4) YEAR(GETDATE()) +RIGHT("0" + (DT_WSTR, 2) MONTH(GETDATE()),2) +RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2) 

Выше также даст вам дату один день раньше. Основная проблема с выдачей плюс или минус дает ошибку усечения в выражении.

RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2) 

не сломает выражение.

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

  • Нет связанных вопросов^_^