2015-02-01 2 views
0

Я хотел бы получить разницу в минутах между двумя датами в SSIS с использованием трансформации Derived Column. У меня есть рабочий сценарий SQL Server 2008, но я не могу его преобразовать в выражение в преобразовании Derived Column. Любая помощь приветствуется.Как получить разницу в минутах между двумя датами в SSIS с использованием преобразования Derived Column?

(floor((CONVERT(float, CAST(dm.DLVRY_DAT AS DATETIME)) - CONVERT(float, CAST(ch.BOOKING_DATE AS DATETIME))) * 24) * 60) + 
(((CONVERT(float, CAST(dm.DLVRY_DAT AS DATETIME)) - CONVERT(float, CAST(ch.BOOKING_DATE AS DATETIME))) * 24 - floor((CONVERT(float, CAST(dm.DLVRY_DAT AS DATETIME)) - CONVERT(float, CAST(ch.BOOKING_DATE AS DATETIME))) * 24)) * 60) 

SELECT CAST (GETDATE() AS FLOAT) -> это работает в SQL, но при преобразовании выражения SSIS в производный столбец преобразования ((DT_R8) GETDATE()) это не работает.

Просьба указать, как это сделать в SSIS.

ответ

0

Попробуйте следующее:

(DT_I4)DATEDIFF("Minute",(DT_DATE)BookingDate,(DT_DATE)DeliverDate) 

Кроме того, обратите внимание, что вы можете использовать следующие в SQL Server 2008.

SELECT DATEDIFF(minute, BookingDate, DeliverDate) 
+0

спасибо большое за идею! Попробуем это и бежим против разных дат. Я прочитал несколько комментариев о том, что были некоторые проблемы с использованием датиффа, чтобы получить разницу между датами. Возможно, это было до SQL Server 2008. –

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