我必须将数据从 Excel 文件导入到 SSIS,但我在日期列中遇到问题,在 Excel 表日期格式中yyyy/mm/dd
,当它上传到数据库中时,它会更改为yyyy/dd/mmm
格式。
如何解决这个问题?
导入日期时在派生列中使用 SUBSTRING 函数,
(LEN(TRIM(SUBSTRING(ReceivedDateTime,1,8))) > 0 ? (DT_DBDATE)(SUBSTRING(ReceivedDateTime,1,4) + "-" + SUBSTRING(ReceivedDateTime,5,2) + "-" + SUBSTRING(ReceivedDateTime,7,2)) : (DT_DBDATE)NULL(DT_WSTR,5))
如果数据在那里,则使用 Substring 函数提取在数据库中设置的确切日期,或者如果日期不存在,则在数据库中插入 NULL。
我看到两个选项:
首先使用以下命令在您的数据库中创建表
CREATE TABLE [dbo].[Manual] (
[Name] nvarchar(255),
[Location] nvarchar(255),
[Date] datetime
)
SET DATEFORMAT YDM
通过使用DATEFORMAT YDM,日期将以 YYYY/DD/MM 格式导入。在运行包之前修改包并在列映射时选中复选框“删除目标表中的行”。
然后执行包。它会起作用的。