【问题标题】:Converting text to date format SSIS将文本转换为日期格式 SSIS
【发布时间】:2019-12-04 08:28:14
【问题描述】:

我正在使用 SSIS 将数据从 Excel 导入 SQL Server 数据库。

日期列有nvarchar数据类型,我想将其更改为日期数据类型YYYY-MM-DD。

如果值为空,那么我想得到空值。

我在 OLE DB 目标上的创建新表选项中使用了 [mycolumn] 日期。

对吗?

【问题讨论】:

  • 喊没用。它使问题变得更难并且惹恼了人们。无论如何,日期没有格式,它们是二进制值。您需要将文本转换为带有Data Conversion transform 的日期或解析它并返回带有Derived Column Transform 的日期
  • 究竟是什么实际问题? SSIS 是否抱怨它无法将nvarchar 插入date 列?字符串数据的格式是什么?如果是YYYY-MM-DD,您可能只需要一个数据转换,甚至是source 查询中的cast(someField as date)。无论文化或排序规则如何,YYYY-MM-DD 和 YYYYMMDD 都被识别为有效的 date 或 datetime2 文字。使用datetime,由于历史原因,只有YYYYMMDD 是明确的

标签: sql-server sql-server-2012 ssis-2012


【解决方案1】:
  1. 添加数据转换数据流组件。
  2. 右键单击,显示高级编辑器...
  3. 转到输入和输出属性
  4. 展开数据转换输出并点击日期列
  5. 在自定义属性中将 FastParse 设置为 True
  6. 确保数据类型设置为数据库日期 [DT_DBDATE]
  7. 再次运行 ssis 包,yyyymmdd 日期应该从 nvarchar 顺利流向日期

【讨论】:

    【解决方案2】:

    在将 [mycolumn] 插入表格之前将其转换为所需的 DATE 格式。试试这个:-

    SELECT CONVERT(CHAR(10), [mycolumn],126)
    

    【讨论】:

    • SQL Server 将YYYY-MM-DD 直接识别为date 文字。如果文本以该形式发送到服务器,则无需转换即可插入date 列
    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 2021-06-09
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多