sql-server - SSIS IMPORT:Excel 到带有日期列的 sql 服务器(将 unicode 字符串转换为 DT_DBDATE)
问题描述
使用 SSIS Excel Import evrything 很好,除了日期列是来自 excel 源的 DT_WSTR 并且应该是目标表中的 DATE。
excel 列是一种通用格式,我无法控制它,因此无法对其进行编辑。目标表必须具有正确的输出,并且在接收更多要添加到表中的数据时,我将使用相同的包。
首先尝试将数据转换为失败的 DT_DBDATE。
真的不知道如何使用 DERIVED COLUMN 但我在这里尝试了一些类似案例的表达式,但这些表达式不起作用:
(DT_DBDATE)(MyDateColumn,1,2)+"."+SUBSTRING(MyDateColumn,3,2)+"."+SUBSTRING(MyDateColumn,5,4))
然后我尝试忽略错误并将日期列作为 NULL 复制到表中。
最后我尝试了一个将 OUTPUT 转换为 DT_DATE 的脚本任务:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
try
{
//repeated this for rest of Datecolumns
Row.CopyofMyDateColumn=DateTime.ParseExact(Row.MyDateColumn, "dd/MM/yyyy",CultureInfo.InvariantCulture);
}
Catch (Exception ex)
{
book pbCancel= false;
this.ComponentMetaData.FireError(5, "The component failed to convert the date", "Component error", string.Empty,5, out pbCancel);
}
}
这成功执行,但日期现在都是 1899-12-30。他们全部。还添加了 IMEX=1
我想要的输出是 dd.MM.yyyy
解决方案
推荐阅读
- spring - 可以将消息推送到 aws sqs 的最大速率是多少?
- dart - 访问超类变量时出错
- php - php和html在同一个文件,还是分开的文件?
- php - 如何克服取消链接和上传图片错误
- javascript - 在通知外部单击时关闭通知弹出窗口
- google-sheets - 每次都无法追加以 A 列开头的行
- swift - 如何快速从选定区域裁剪视频帧大小?
- javascript - 从“react-sortable-tree”拖到另一个组件后如何防止删除节点?
- c - execinfo.h:使用cygwin在windows上安装VIC5.0.1时没有这样的文件或目录
- python - Python Shapely 点位于多边形内,但不在多边形边界内