我有以下两列:
StartDate = 2017-01-01 00:00:00.000
EndDate = 2017-01-01 05:45:00.000
我需要为派生列编写一个SSIS表达式,用于计算这两个日期之间的时间。输出应该是:
05:45:00.0000000
任何人都可以帮忙写这个表达吗?
提前致谢!!
答案 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