计算ssis中两个日期之间的时间差
calculate time difference between two dates in ssis
我有以下两列:
StartDate = 2017-01-01 00:00:00.000
EndDate = 2017-01-01 05:45:00.000
我需要为我的派生列编写一个 SSIS 表达式来计算这两个日期时间之间的时间。输出应为:
05:45:00.0000000
谁能帮忙写下这个表达式?
提前致谢!!
您可以使用 DATEDIFF()
函数来计算两个日期之间的差异。
小时差异
DATEDIFF("Hh",[StartDate],[EndDate])
分钟差异
DATEDIFF("mi",[StartDate],[EndDate])
分钟差异
DATEDIFF("ss",[StartDate],[EndDate])
建议表达式 return 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)
参考资料
没有直接函数可以为您提供预期的输出,您必须以所需的最小单位(秒或毫秒)获取两个日期之间的差异,然后您应该构建自己的表达式将其转换为 HH:mm:ss
格式)
您可以使用以下表达式来计算两个日期之间的差异:
RIGHT("00" + (DT_WSTR,10)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) / 3600),2) + ":" +
RIGHT("00" + (DT_WSTR,10)((DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) % 3600) / 60) ,2) + ":" +
RIGHT("00" + (DT_WSTR,10)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate])% 60),2)
我有以下两列:
StartDate = 2017-01-01 00:00:00.000
EndDate = 2017-01-01 05:45:00.000
我需要为我的派生列编写一个 SSIS 表达式来计算这两个日期时间之间的时间。输出应为:
05:45:00.0000000
谁能帮忙写下这个表达式?
提前致谢!!
您可以使用 DATEDIFF()
函数来计算两个日期之间的差异。
小时差异
DATEDIFF("Hh",[StartDate],[EndDate])
分钟差异
DATEDIFF("mi",[StartDate],[EndDate])
分钟差异
DATEDIFF("ss",[StartDate],[EndDate])
建议表达式 return 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)
参考资料
没有直接函数可以为您提供预期的输出,您必须以所需的最小单位(秒或毫秒)获取两个日期之间的差异,然后您应该构建自己的表达式将其转换为 HH:mm:ss
格式)
您可以使用以下表达式来计算两个日期之间的差异:
RIGHT("00" + (DT_WSTR,10)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) / 3600),2) + ":" +
RIGHT("00" + (DT_WSTR,10)((DATEDIFF("ss",@[User::StartDate],@[User::EndDate]) % 3600) / 60) ,2) + ":" +
RIGHT("00" + (DT_WSTR,10)(DATEDIFF("ss",@[User::StartDate],@[User::EndDate])% 60),2)