SSIS 包插入“12/31/1899”而不是提供的“1/1/1900”
SSIS package inserting '12/31/1899' instead of '1/1/1900' that was provided
SSIS 包插入“12/31/1899”而不是 excel sheet 中提供的“1/1/1900”...为什么要更改为另一个日期?这导致下游 table.
出现小日期时间问题
那是因为 Lotus 1-2-3
,它是侏罗纪时期流行的电子表格程序。 Lotus
编码错误,1900 年是闰年。当然,这不是因为那是一个完整的世纪,而是那个小错误已经存在。
当 Microsoft 推出 Excel
时,他们想从 Lotus
窃取市场份额,因此他们故意将同样的错误植入 Excel
,以便人们可以移植他们的旧 1-2-3
将电子表格转移到 spanky 的新 Microsoft 产品。
所以 Excel 在内部表示为 0
的日期实际上不是 1900 年 1 月 1 日。它差了一个,以说明不存在的 1900 年 2 月 29 日,并且导入后,该班次显示在您的 SQL table 中,日期为 1899 年 12 月 31 日。
所有这一切中我最喜欢的部分是有人故意这样做的。
幸运的是,您可以通过选择 Advanced
选项中的 Use 1904 data system 选项来更改 Excel 工作簿以按照您期望的方式对日期进行编码。不过,link 中有更多详细信息。
您必须决定是修复电子表格还是在 SSIS 中对其进行编码在您的情况下更不麻烦。
SSIS 包插入“12/31/1899”而不是 excel sheet 中提供的“1/1/1900”...为什么要更改为另一个日期?这导致下游 table.
出现小日期时间问题那是因为 Lotus 1-2-3
,它是侏罗纪时期流行的电子表格程序。 Lotus
编码错误,1900 年是闰年。当然,这不是因为那是一个完整的世纪,而是那个小错误已经存在。
当 Microsoft 推出 Excel
时,他们想从 Lotus
窃取市场份额,因此他们故意将同样的错误植入 Excel
,以便人们可以移植他们的旧 1-2-3
将电子表格转移到 spanky 的新 Microsoft 产品。
所以 Excel 在内部表示为 0
的日期实际上不是 1900 年 1 月 1 日。它差了一个,以说明不存在的 1900 年 2 月 29 日,并且导入后,该班次显示在您的 SQL table 中,日期为 1899 年 12 月 31 日。
所有这一切中我最喜欢的部分是有人故意这样做的。
幸运的是,您可以通过选择 Advanced
选项中的 Use 1904 data system 选项来更改 Excel 工作簿以按照您期望的方式对日期进行编码。不过,link 中有更多详细信息。
您必须决定是修复电子表格还是在 SSIS 中对其进行编码在您的情况下更不麻烦。