如何在SSIS中将0:00:00格式时间转换为整数秒?
在SSIS派生列中将"0:00:00"格式时间转为整数秒
推荐方案(最稳妥)
直接把字符串格式的时间转成SSIS的DT_DBTIME类型,再通过日期函数计算总秒数,自动兼容带/不带前导零的小时格式:
DATEPART("Hour", (DT_DBTIME)column) * 3600 + DATEPART("Minute", (DT_DBTIME)column) * 60 + DATEPART("Second", (DT_DBTIME)column)
原表达式的问题
你之前的表达式只算了小时转分钟加分钟,完全漏掉了秒数的计算;而且拆分字符串的方式不如直接转时间类型可靠,容易因格式细节出问题。
备选拆分方案(当无法直接转时间类型时)
如果你的时间字符串有特殊格式导致转DT_DBTIME失败,可以修正拆分逻辑,覆盖小时、分钟、秒三个部分的计算:
(DT_I4)TOKEN(column, ":", 1) * 3600 + (DT_I4)TOKEN(column, ":", 2) * 60 + (DT_I4)TOKEN(column, ":", 3)
只要输入严格是H:MM:SS或HH:MM:SS格式,这个表达式能正确提取各部分并计算总秒数。
内容的提问来源于stack exchange,提问作者Dont_know
相关产品推荐
相关产品推荐

