【发布时间】:2019-10-18 20:13:56
【问题描述】:
一个 excel 文件的所有日期格式为 MM/dd/yy,我通过 c# 脚本在 SSIS 中读取它,但在循环浏览记录时,我注意到某些日期被读取为 dd/MM/yy。 Excel 或 SSIS 不知何故弄乱了日期格式。由于某些日期的格式正确为 MM/dd/yy,我无法找出哪些格式正确,哪些不是。有没有办法确保以特定日期格式读取 Excel 工作表?
我尝试在连接字符串中将 IMEX 的配置更改为 1。 还尝试在代码中识别日期,但这是不可能的,因为 01-02-2019 可能是 1 月 2 日或 2 月 1 日。
我使用的连接字符串如下所示:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";Extended Properties=" + "\"" + "EXCEL 12.0 XML; HDR=NO; IMEX=1" + "\"";
我在脚本中打开 excel 文件并遍历行。
excel 的日期如下:
- 19 年 1 月 31 日
- 01/02/19
- 08/19/19
- 07/06/19
当我在 SSIS 中阅读它时,我会得到以下结果:
- 19 年 1 月 31 日
- 02/01/19
- 19/08/19
- 06/07/19
如您所见,某些行的日期格式发生了变化。
有没有办法确保所有读取日期的格式?
【问题讨论】:
-
如果我正确地读取了您的 source 数据(excel),它们是 not 正如您提到的那样标准化 - 例如
31/01/1919/08/19不是MM/dd/yy。那就是说你会有问题 -01/02/19是 1 月还是 2 月? -
感谢您的回复,样本不正确。示例如下:EXCEL 01/12/2019 08/19/2019 当它在 SSIS 中由 C# 准备好时,它可能会有所不同,有时它被正确读取,对于某些 excel 文件,我得到:01/12/2019 19/08/2019 我的意思是,EXCEL 文件中的值,即使我格式化它们,它们的格式并不总是相同。