首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS派生列条件时间修改

SSIS派生列条件时间修改
EN

Database Administration用户
提问于 2015-10-16 21:48:43
回答 1查看 566关注 0票数 1

我使用SSIS将数据从MySQL数据库传输到Server数据库。然而,有一点是我目前所坚持的。MySQL时间数据类型支持大于或等于24:00:00的值,而Server的时间上限为23:59:59。我正在传输的表之一有一个时间列,在MySQL中是24:00。从逻辑上讲,在我们的业务案例中,这是一个‘停止时间’,因此相当于00: 00:00:00,我正试图找到一种方法来使用SSIS来在出现该值时将其转换为该值。

派生列似乎是这样做的方法,但我似乎对语法还不太了解,也很少有资源用于SSIS条件表达式中的时间字面值。到目前为止,我正试图这样做:

代码语言:javascript
复制
time == '24:00:00' ? time = '00:00:00' : time = time

当然,它只返回错误,因为我确信语法的一部分是不正确的。我有(我相信)逻辑,只是杂乱无章的语法是问题。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-10-16 22:07:57

就差那么一点。就会是

代码语言:javascript
复制
time == "24:00:00" ? "00:00:00" : time

三元运算符看起来类似于(condition) ? true : false,但ForEach枚举数是一个明显的例外,SSIS表达式中的其他任何地方都不能使用像time = "00:00:00“这样的赋值。它基本上会被分配给任何列或变量暗示。

如果实际检测到time列的数据类型为DT_TIME,则上述表达式可能会中断,因为这将超出DT_TIME值的允许域,但实际上在源组件级别(OLE DB/ADO /ODBC源)会中断/失败/出错。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/118303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档