首页 > 解决方案 > 在不解析子字符串的情况下在 SSIS 中与日期保持一致

问题描述

在我的工作场所,我们有一个 ETL 工作流程,其中我们有 Python 代码来完成大部分繁重的转换工作。输出是一个 CSV 文件,我们使用 SSIS 将其内容上传到数据仓库。

我注意到数据仓库(类型 DT_DBDATE)中的日期列存在一些不一致,并意识到 SSIS 一直在错误地从 CSV 文件中读取美国格式的日期。

这让我很困惑,因为首先格式化日期的全部原因mm/dd/yyyy是它曾经导致德国标准dd.mm.yyyy! 此外,我无法想象这样一种情况,行之间的这种行为变化将是处理真实数据集的正确方法。

我尝试在 Internet 上研究该问题,似乎该行为可能取决于运行 SSIS 的计算机的本地化。这对我们来说是不可接受的情况,因为我们混合了具有不同本地化的计算机。

我看过很多文章,它们解释了如何读取具有特殊日期格式的 CSV 数据,并解析子字符串,然后“手动”构建日期。我发现这个解决方案有些复杂,因为我可以直接控制 Python 输出的日期格式,所以我非常希望 SSIS 能够正确解释日期格式的解决方案,而不管主机的操作系统设置如何。例如,能够在某处将输入日期格式作为参数提供会非常好。

任何建议如何在没有字符串操作解决方法的情况下正确获取日期?

标签: datessis

解决方案


您可以在连接管理器编辑器中设置区域设置,在常规下

在此处输入图像描述

在这种情况下是英语英国,但如果更改为英语美国,它会将日期解释为 MMDDYYYY


推荐阅读