计算ssis中两个日期之间的时差

时间:2017-12-14 15:38:17

标签: sql sql-server ssis expression sql-server-data-tools

我有以下两列:

StartDate = 2017-01-01 00:00:00.000
EndDate = 2017-01-01 05:45:00.000

我需要为派生列编写一个SSIS表达式,用于计算这两个日期之间的时间。输出应该是:

05:45:00.0000000

任何人都可以帮忙写这个表达吗?

提前致谢!!

2 个答案:

答案 0 :(得分:3)

您可以使用DATEDIFF()函数来获取两个日期之间的差异。

小时差异

DATEDIFF("Hh",[StartDate],[EndDate])

分钟差异

DATEDIFF("mi",[StartDate],[EndDate])

分钟差异

DATEDIFF("ss",[StartDate],[EndDate])

建议的表达式返回HH:mm:ss

您必须在几秒钟内获得差异,然后使用以下表达式

RIGHT("000" + (DT_WSTR,3)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) / 3600),3) + ":" + RIGHT("00" + (DT_WSTR,2)((DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) % 3600) / 60)   ,2) + ":" + RIGHT("00" + (DT_WSTR,2)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate])% 60),2)

<强>参考

答案 1 :(得分:1)

没有直接函数可以为您提供预期的输出,您必须以所需的最小单位(秒或毫秒)获得两个日期之间的差异,然后您应该构建自己的表达式,将其转换为{{1}格式)

您可以使用以下表达式来区分两个日期:

HH:mm:ss