如何使用派生列转换获得SSIS中两个日期之间的分钟差异?

时间:2015-02-01 11:53:59

标签: sql-server-2008 date ssis expression

我希望使用派生列转换获得 SSIS 中两个日期之间的分钟差异。我在下面有一个有效的 SQL Server 2008 脚本,但我无法将其成功转换为派生列转换中的表达式。任何帮助表示赞赏。

(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,但在派生列转换((DT_R8)GETDATE())中转换为SSIS表达式时,这不起作用。

请指导我如何在SSIS中完成。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

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

另请注意,您可以在SQL Server 2008中使用以下内容。

SELECT DATEDIFF(minute, BookingDate, DeliverDate)