我正在使用以下代码构建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有点陌生,所以请原谅我的无知。我在这里做什么错了?
答案 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
有关其他信息,您可以参考以下链接: