首页 文章

SSIS日期到字符串转换错误

提问于
浏览
3

我是SSIS的新手,我遇到了一个问题,我在OLE DB Source步骤中使用sql语句来提取数据,这个数据包含需要转换的5个DATETIME字段和所有数据正在进入一个平面文件 .

我正在sql中进行转换,如下所示:

REPLACE(CONVERT(VARCHAR(10), birthdate, 101), '/', '') AS 'Date of Birth (MMDDYYYY)

在SSIS平面文件连接管理器中,我的DataType是字符串[DT_STR],我的OutputColumnWidth是8.这在SSIS中工作而没有截断,因为上面的转换创建了8个字符的varchar . 如果我尝试转换为varchar(8),它会截断sql server management studio中的数据 .

我的问题是我的下一次转换尝试失败了 . 这是sql代码:

REPLACE(CONVERT(VARCHAR(10), exp_date, 103), '/', '') AS 'Expiration Date

我收到以下错误:"The value could not be converted because of a potential loss of data"即使所有内容都使用相同的设置进行了重现 . 此转换将日期转换为' DDMMYYYY '格式 .

我从研究中得知这是一个数据转换错误,但我不知道如何绕过它,尤其是第一次转换正常工作 .

有趣的是,当我将错误行重定向到不同的平面文件时,日期会被拉动并转换为完全没有问题 .

我在这里不知所措,并希望得到小组的任何帮助 .

1 回答

  • 1

    我弄清楚它为什么不起作用 . 当我第一次创建包时,只有生日被转换,因为我的注意力是由于不同的日期格式 . 在我运行并确认所有数据都被拉出后,我意识到我还需要转换其他4个日期 . 问题是即使我在sql和平面文件连接管理器中进行了更改,元数据仍然设置为这4个字段的原始设置 . 我重新创建了步骤,一切都正确转换 . 感谢您抽出宝贵时间作出回应

相关问题