首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有零的日期字段的SSIS包派生列条件表达式

带有零的日期字段的SSIS包派生列条件表达式
EN

Stack Overflow用户
提问于 2017-02-10 19:48:07
回答 1查看 831关注 0票数 0

我对SSIS及其数据类型比较陌生。我已经成功地创建了一个数据流任务,该任务将数据从逗号分隔的.txt平面文件导入Server。在运行任务时,在.txt文件中的日期字段有0时发生错误。

对于派生列表达式,将0转换为空的日期字段,到目前为止我得到了以下内容.

代码语言:javascript
运行
复制
[Latest Bill Due Date]==0 ? NULL(DT_DATE) : (DT_DATE)[Latest Bill Due Date]

...but逻辑未被接受,并出现错误消息:

数据类型"DT_WSTR“和"DT_I4”与二进制运算符"==“不兼容。操作数类型不能隐式转换为操作的兼容类型。要执行此操作,需要使用cast运算符显式转换一个操作数或两个操作数。

提前感谢您的任何指示。

EN

回答 1

Stack Overflow用户

发布于 2017-02-10 20:41:45

我也遇到了类似的问题,当文本文件中有一个00000000值时,必须在datetime列中将其转换为null。最后为我工作的是在列中建立了以null值作为default的表,并添加了一个脚本组件作为Transformation。添加为列输出,类似于“VerifyNullDateVar”,并在脚本中执行以下操作

代码语言:javascript
运行
复制
    if (Row.DATEVAR == 0)
    {
         //do whatever you want to do if the input value is an actual date

         Row.VerifyNullDateVar = 2;
    }
    else
         Row.VerifyNullDateVar = 1;

DATEVAR是从文本文件中获得的输入列。之后,使用派生列从VerifyNullDateVar读取值。

  1. VerifyNullDating == 1
  2. VerifyNullDating == 2

最后,您需要设置2个OLEDB目标,一个是当您可以在表中保存日期值时;另一个是当您没有在其中保存任何内容时,这样它就可以获得默认的null值。

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

https://stackoverflow.com/questions/42167553

复制
相关文章

相似问题

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