SSIS脚本任务-VB-日期提取为INT而不是日期字符串

时间:2018-09-26 16:53:43

标签: sql-server excel vb.net ssis etl

我正在使用以下代码构建sql输入语句,该语句从Excel工作表中逐行提取数据。

v_sql_input_string += "'" & Trim(Replace(Convert.ToString(.Rows(i).Item(3)), "'", "''")) & "', "

我的一列在excel中被格式化为“自定义” MM / dd / yyyy格式。日期在Excel中也显示为01/22/2018。当提取到该字符串中时,它将重新格式化为日期INT。示例43102。

我对VB有点陌生,所以请原谅我的无知。我在这里做什么错了?

1 个答案:

答案 0 :(得分:4)

Microsoft Excel将日期和时间存储为十进制(称为Excel Serial)

您可以使用DateTime.FromOADate()函数将其转换为日期。

您可以使用以下代码:

If Double.TryParse(.Rows(i).Item(3), New Double) Then

    v_sql_input_string += "'" & Trim(Replace(DateTime.FromOADate(CDbl(.Rows(i).Item(3))).ToString("MM/dd/yyyy"), "'", "''")) & "', "

Else

    v_sql_input_string += "'" & Trim(Replace(.Rows(i).Item(3).ToString(), "'", "''")) & "', "

End If

有关其他信息,您可以参考以下链接: