gpt4 book ai didi

sql-server - SSIS 导入 Excel 日期时出错(截断错误)

转载 作者:行者123 更新时间:2023-12-02 19:21:23 24 4
gpt4 key购买 nike

我很抱歉发布了一个看似非常简单的问题,但我找不到答案,而且我浪费了几天(此时不仅仅是几个小时)。我对 SSIS 还很陌生,它让我很不爽。

背景:

非常简单的 SSIS 包,用于将 Excel 工作表导入 SQL Server 中的临时表。由于我不想使用错误的术语来误导任何人,因此我将 Excel 源称为 Excel,将 SQL Server 表称为目标表。

这个包之前已经工作过。但是,由于日期列的数据截断,它现在失败了。 Excel 列已被格式化为日期(并且我在日期中尝试了几种不同的格式选项)。目标列也是 DATE 列(不是日期时间)。 Excel 中的数据主要是空单元格,带有一些零星值。我认为当日期开始出现在数据中(而不仅仅是空白)时,错误就开始了。

我已尝试对双方(Excel 和 Target)使用高级编辑器,并尝试了多种数据类型设置,但我不断遇到相同的失败。我怀疑我所做的各种测试现在已经很困惑了。

我还尝试为日期字段“date[DT_DATE]”添加数据转换转换 - 但这不起作用。并且,我尝试创建派生列 - 首先基于 Excel 列,然后基于转换列。所有这些尝试都失败了。

问题:

1) 将 Excel 数据导入 SQL Server 中 DATE 列的最佳实践是什么?

2) 由于这是两个非常成熟的 Microsoft 应用程序(Excel 和 SQL Server)一起工作,因此看起来应该很简单。这让我相信我一定错过了一些基本概念。谁能帮我纠正一下吗?

3) 你们如何将 Excel 日期导入到 SQL Server 中?

4)编辑后同步列的技巧是什么?

感谢您提供的任何见解。很抱歉用看似简单的事情来打扰大家。

大卫

最佳答案

我个人认为 Excel 日期没有最佳实践,这对我来说总是很痛苦。

如果您可以格式化 Excel 文件,请尝试将其更改为“文本”。它将作为 Unicode 而不是日期导入。如果没有,请尝试在“数据转换”中转换该列"任务转为 Unicode

完成后,您将需要使用“派生列”任务。以您想要的格式构建日期。

源示例MM/dd/yyyy hh:mm:ss

构建为yyyy-MM-dd

SUBSTRING(datecolumn,7,4)+ "-" + SUBSTRING(datecolumn,1,2)+ "-" +SUBSTRING(datecolumn,4,2)

可能很粗糙,但可以拯救我的理智。

如果日期看起来像m/d/yyyy,当 Jan 或其他时间不包含 2 个值时,您将为月份部分添加一些类似的内容。

RIGHT("0" + SUBSTRING(datecolumn,1,FINDSTRING(datecolumn,"/"1)-1),2)

祝你好运

关于sql-server - SSIS 导入 Excel 日期时出错(截断错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42654040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com