Задача сценария служб SSIS - VB - Дата извлекается как INT вместо строки даты - PullRequest
0 голосов
/ 26 сентября 2018

Я использую приведенный ниже код для создания оператора ввода SQL, который извлекает данные строка за строкой из таблицы Excel.

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

Один из моих столбцов отформатирован в формате "Custom" MM / dd / yyyy в Excel.Дата также отображается как 22.01.2008 в Excel.При извлечении в эту строку она переформатируется как дата INT.Пример 43102.

Я немного новичок в VB, так что прости меня за мое невежество.Что я тут не так делаю?

1 Ответ

0 голосов
/ 26 сентября 2018

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

Для получения дополнительной информации вы можете обратиться по этой ссылке:

...