【问题标题】:SSIS output date as DD/MM/YYY 00:00:00SSIS 输出日期为 DD/MM/YYYY 00:00:00
【发布时间】:2019-07-19 02:36:04
【问题描述】:

我正在尝试导入具有自定义日期格式“dd/mm/yyyy 00:00:00”列的 excel 文件,并将其导出为相同格式的 csv 文件。

平面文件当前正在将日期转换为 DT_DATE 并且不显示时间戳(始终为 00:00:00)

我没有处理太多日期转换,因此不确定如何最好地处理这个问题,尽管在发布这篇文章之前我已经尝试了很多事情,但没有运气。

任何帮助表示赞赏

谢谢

【问题讨论】:

  • 我不太使用 Excel 文件 - 几乎总是 CSV。话虽如此,该列的 CSV 输出文件的数据类型是什么?您可以通过打开连接管理器并选择Advanced 窗口来获取此信息。尝试使用 DT_DBTIMESTMP。
  • 只需将其映射到目标,无需进行任何转换或派生列。我认为你得到了一个很好的答案
  • @DAVE1816 如果此答案解决了问题,那么您必须将其标记为已接受并投票。不只是说谢谢

标签: sql-server csv datetime ssis etl


【解决方案1】:

在平面文件中存储数据时,不需要将列数据类型指定为 DT_DATE,保留为 DT_WSTR 并与输入列映射

请注意,DT_DATE 可以隐式转换为 DT_WSTR,您可以在以下链接中了解有关允许转换的更多信息:

更改数据类型不会更改平面文件中的任何内容,因为它只是 SSIS 包所需的元数据信息。


旁注:要更改列数据类型,请打开平面文件连接管理器,转到高级选项卡,选择列并从属性网格中更改数据类型。

【讨论】:

  • 所以要清楚,在平面文件中,我的日期列数据类型是 DT_WSTR,而在源高级编辑器中,源输出外部和输出都设置为 DT_Date(请注意,我没有更改这些数据)。结果仍然显示“27/02/2019”而不是“27/02/2019 00:00:00”。我错过了什么吗?
  • @DAVE1816 尝试将值转换为 DT_DBTIMESTMP 并将其映射到平面文件
  • 我想我试过了,只得到了 DD/MM/YY "HH:MM",缺少 "SS",我会重试并确认。谢谢
  • 现在我记得那行得通,但是我得到了 2019-02-27 00:00:00,知道如何将其恢复为 DD/MM/YYYY HH:MM:SS。
  • 另外,如果我的时间戳是 23:00:00,这将显示,它只是不显示 00:00:00,这是我的永久时间戳
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
相关资源
最近更新 更多