【问题标题】:How do I get the difference in minutes between two dates in SSIS using Derived Column transform?如何使用派生列转换获得 SSIS 中两个日期之间的分钟差?
【发布时间】:2015-02-01 11:53:58
【问题描述】:

我想使用派生列转换获得 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 中进行操作。

【问题讨论】:

    标签: sql-server-2008 date ssis expression


    【解决方案1】:

    尝试以下方法:

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

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

    SELECT DATEDIFF(minute, BookingDate, DeliverDate)
    

    【讨论】:

    • 非常感谢您的想法!将尝试这个并针对不同的日期运行。我读了一些 cmets 使用 datediff 来获取日期之间的差异存在一些问题。也许那是在 SQL Server 2008 之前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多