在 SSIS 中将 excel 列从常规转换为日期
Convert excel column from General to Date in SSIS
我在 SQL 中有一个 nvarchar(50)
列,格式为 mm/dd/yyyy
。我正在尝试使用 SSIS 在 excel 中导入此数据。在 ssis 包中,我在执行 SQL 任务中创建了一个数据类型为 Date 的列 Date_1 (因为 .xlsx 文件需要动态创建)并且在我的数据流任务中我正在转换 Date_1迄今为止(DT_DATE
)。但是在数据迁移之后,当我检查我的文件列时 Date_1 是一般数据类型而不是日期。有人可以帮我如何将 General 列转换为 Date
您在Microsoft Excel 界面中显示的下拉列表与数据类型无关它是Number Format
属性 用于更改值的方式显示在 Excel.
要更改此 属性,您需要在脚本任务中使用 Microsoft.Interop.Excel
库并更改 Excel.Range.NumberFormat
属性。例如:
Range rg = (Excel.Range)xlWorksheet.Cells[1,1];
rg.EntireColumn.NumberFormat = "MM/dd/yyyy";
参考资料
- How to make correct date format when writing data to Excel
- How to: Specify Number or Date Format for Cell Content
我在 SQL 中有一个 nvarchar(50)
列,格式为 mm/dd/yyyy
。我正在尝试使用 SSIS 在 excel 中导入此数据。在 ssis 包中,我在执行 SQL 任务中创建了一个数据类型为 Date 的列 Date_1 (因为 .xlsx 文件需要动态创建)并且在我的数据流任务中我正在转换 Date_1迄今为止(DT_DATE
)。但是在数据迁移之后,当我检查我的文件列时 Date_1 是一般数据类型而不是日期。有人可以帮我如何将 General 列转换为 Date
您在Microsoft Excel 界面中显示的下拉列表与数据类型无关它是Number Format
属性 用于更改值的方式显示在 Excel.
要更改此 属性,您需要在脚本任务中使用 Microsoft.Interop.Excel
库并更改 Excel.Range.NumberFormat
属性。例如:
Range rg = (Excel.Range)xlWorksheet.Cells[1,1];
rg.EntireColumn.NumberFormat = "MM/dd/yyyy";
参考资料
- How to make correct date format when writing data to Excel
- How to: Specify Number or Date Format for Cell Content