Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 与SSIS中的日期保持一致,无需解析子字符串_Date_Ssis - Fatal编程技术网

Date 与SSIS中的日期保持一致,无需解析子字符串

Date 与SSIS中的日期保持一致,无需解析子字符串,date,ssis,Date,Ssis,在我的工作场所,我们有一个ETL工作流,其中我们有Python代码来完成转换的大部分繁重工作。输出是一个CSV文件,我们使用SSIS将其内容上传到数据仓库中 我注意到数据仓库中的日期列(DT_DBDATE类型)中存在一些不一致之处,并意识到SSIS从CSV文件中错误地读取了美国格式的日期 如果只有一种有效的方法来解释日期顺序,它将正确地将其解释为mm/dd/yyyy,因此4月20日将正确地登录到数据库中 如果有两种有效的方式来解释日期顺序,它将解释为dd/mm/yyyy,因此4月1日变为1月4

在我的工作场所,我们有一个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
出现问题!此外,我无法想象这样一种情况:行之间的这种行为变化是处理真实数据集的正确方式

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

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


关于如何在没有字符串操作变通方法的情况下获得正确的日期,有什么建议吗?

您可以在连接管理器编辑器的“常规”下设置区域设置


在本例中,是英语UK,但如果更改为英语US,则会将日期解释为MMDDYYYY

您可以在连接管理器编辑器的“常规”下设置区域设置


在本例中,是英语UK,但如果更改为英语US,则会将日期解释为mmddyyy

您应该能够在平面文件连接管理器上设置匹配的区域设置。我尝试了您的格式
MM/dd/yyyyy
和区域设置=
English(美国)
它能够区分
01/04/2021
04/01/2021
,没有任何问题。您应该能够在平面文件连接管理器上设置匹配的区域设置。我尝试了您的格式
MM/dd/yyyy
和Locale=
English(美国)
它能够毫无问题地区分
01/04/2021
04/01/2021