【问题标题】:SSIS Script Task - VB - Date is extracting as INT instead of date stringSSIS 脚本任务 - VB - 日期提取为 INT 而不是日期字符串
【发布时间】:2018-09-26 16:53:43
【问题描述】:

我正在使用下面的代码来构建一个 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有点陌生,所以请原谅我的无知。我在这里做错了什么?

【问题讨论】:

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


    【解决方案1】:

    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
    

    更多信息可以参考这个链接:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 2020-08-14
      相关资源
      最近更新 更多