Чтобы добавить контекста, посмотрите здесь: Необходимо импортировать столбец DATE в Excel в таблицу SQL с помощью SSIS
Еще одна проблема, которую я обнаружил несколько минут назад. Если SSIS установит один столбец даты как тип данных DATE, даты, такие как 19 апреля 2017 года, исчезнут (в исходной таблице будет NULL) ... но не те, которые имеют формат 24 / nov / 16. Это происходит, когда мы загружаем исходную таблицу (перед промежуточной таблицей) ... Случай, который никогда не вызывает проблем, - это когда SSIS устанавливает столбец даты как строку Unicode [DT_WSTR] (255). Это сводит меня с ума! Как преодолеть эту новую проблему? Невозможно изменить исходный файл Excel или принудительно изменить тип данных в SSIS для столбца даты (с DATE на строку Unicode). Спасибо! Как преодолеть эту новую проблему?
EXCEL ФАЙЛ
date
19 Apr 2017
n/a
07/nov/13
ЧТО мы видим в исходной таблице
date
NULL
n/a
2013-11-07
что должно появиться:
date
19 Apr 2017 or something that shows this info (format does not matter)
n/a
2013-11-07
даже я изменяю файл excel, как я сказал в предыдущем комментарии ... SSIS настаивает на установке столбца DATE в качестве типа данных даты ... таким образом я потеряю формат даты 19 апреля 2017 года на NULL. Этого не может быть!
Я видел, как кто-то рекомендовал выбрать CDate ([col]) из [Sheet1 $] в качестве решения этой проблемы, но я не уверен, что это работает
Нет, Кит. Он правильно извлекает даты только в формате мм / дд / гг или подобном этому. Но формат 19 апр 2017 говорит «Невозможно прочитать данные» :(.
Кажется, что если я напишу командную строку sql
select FORMAT([LoginDate],'YYYY-MM-DD') as F1
все работает.
если бы я мог немного изменить этот столбец в excel, у меня было бы два варианта: поместить тип данных GENERAL в этот столбец DATE, OR .... переместить некоторые даты, такие как формат 19 апреля 2017 года, в первые 8 строк ... и в последнем случае SSIS примет тип данных [DT_WSTR] (255) !!! в противном случае он принимает дату (в случае, если в первых 8 строках больше дат, чем 'n / a' ...), что означает, что все даты с форматом 19 апреля 2017 г. БУДУТ НУЛЕВОЙ в исходной таблице (от Excel до исходная таблица)