преобразовать ssis выражение datetime в int - PullRequest
3 голосов
/ 11 июня 2019

Я хочу вычислить дату последней пятницы в ssis. Ниже код делает это.

DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate())

Но он дает результаты для типа данных datetime, и я хочу получить результаты для типа данных int в ssis.

Как конвертировать?

DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate())

1 Ответ

0 голосов
/ 11 июня 2019

Согласно этой статье Microsoft :

Когда строка приводится к DT_DATE или наоборот, используется языковой стандарт преобразования.Однако дата указывается в формате ISO ГГГГ-ММ-ДД, независимо от того, использует ли языковой стандарт формат ISO.

Для преобразования значения в целое число yyyyMMdd,

  1. Сначала необходимо преобразовать значение в строку
  2. Получить первые 10 цифр
  3. Снять разделитель -
  4. Преобразовать в целое число.

Вы можете использовать следующее выражение:

(DT_I4)REPLACE(SUBSTRING((DT_WSTR,50)DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate()),1,10),"-","")
...