При использовании SSIS для импорта CSV-файла, как вы можете заменить отсутствующие даты текущим значением даты и времени UTC?

#sql-server #ssis

#sql-server #ssis

Вопрос:

Я создаю пакет SSIS для импорта файла CSV в таблицу SQL Server. В файле CSV есть столбец даты, и значение будет отсутствовать в некоторых строках. Отсутствующее значение представлено двумя последовательными запятыми (например, val1,,va3). Когда значение отсутствует, я хочу вставить текущую дату и время в UTC.

В рамках преобразования столбца, которое я использую:

 REPLACENULL(DateCreated, GetUtcDate())
 

Это не работает; вместо этого вставляется значение 0001-01-01 00:00:00.0000000.

Подробности: таблица SQL Server ожидает формат даты: Datetime2(7)

Диспетчер соединений с плоским файлом использует временную метку базы данных с точностью [DT_DBTIMESTAMP2]

Как я могу заменить отсутствующие значения текущим значением даты и времени UTC?

Комментарии:

1. Вы пытались установить значение по умолчанию для столбца?

Ответ №1:

Столбец может быть не нулевым, поэтому REPLACENULL не запускается

Поведение источника плоского файла по умолчанию заключается в замене пустых значений столбцов пустой строкой или пустой датой, дважды проверьте свой источник плоского файла и убедитесь, что вы импортируете пустые столбцы как нули.

Входящий NULL

Затем REPLACENULL должен зарегистрировать столбец как НУЛЕВОЙ и заменить его на GetUtcDate()