date - 在不解析子字符串的情况下在 SSIS 中与日期保持一致
问题描述
在我的工作场所,我们有一个 ETL 工作流程,其中我们有 Python 代码来完成大部分繁重的转换工作。输出是一个 CSV 文件,我们使用 SSIS 将其内容上传到数据仓库。
我注意到数据仓库(类型 DT_DBDATE)中的日期列存在一些不一致,并意识到 SSIS 一直在错误地从 CSV 文件中读取美国格式的日期。
- 如果只有一种有效的方式来解释日期顺序,它将正确解释为
mm/dd/yyyy
,因此 4 月 20 日正确地进入数据库。 - 如果有两种有效的解释日期顺序的方式,它将解释为
dd/mm/yyyy
,因此 4 月 1 日变为 1 月 4 日。
这让我很困惑,因为首先格式化日期的全部原因mm/dd/yyyy
是它曾经导致德国标准dd.mm.yyyy
! 此外,我无法想象这样一种情况,行之间的这种行为变化将是处理真实数据集的正确方法。
我尝试在 Internet 上研究该问题,似乎该行为可能取决于运行 SSIS 的计算机的本地化。这对我们来说是不可接受的情况,因为我们混合了具有不同本地化的计算机。
我看过很多文章,它们解释了如何读取具有特殊日期格式的 CSV 数据,并解析子字符串,然后“手动”构建日期。我发现这个解决方案有些复杂,因为我可以直接控制 Python 输出的日期格式,所以我非常希望 SSIS 能够正确解释日期格式的解决方案,而不管主机的操作系统设置如何。例如,能够在某处将输入日期格式作为参数提供会非常好。
任何建议如何在没有字符串操作解决方法的情况下正确获取日期?
解决方案
推荐阅读
- r - 通过重叠时间间隔找到变量的最大值
- angular - 如何在 Angular 6 中转换 PDF 文件并以图像格式(*.jpg 或 *.png)显示?
- google-apps-script - 是否可以?当编辑发生在另一个电子表格上时,从一个电子表格运行 onEdit/onChange
- php - 如何使用similar_text()对多数组进行排序?
- javafx - IDE 中的应用程序启动方法中的异常问题
- c - 更改后未获取更改的链表
- android - 根据其他布局可见性调整滚动视图高度
- php - 如何在一个php页面中执行多个sql插入语句
- c - 如何漂亮地打印嵌套链表
- android - 为 App 设置自定义主题时 TextInputLayout 崩溃