У меня есть следующий штамп времени в текстовом файле:SSIS Derived Column: Как проверить правильность отметки времени и вставить нуль?
3/3/2008 15:21:33
Использование SSIS Производный столбец, я пытаюсь проверить, если TimeStamp находится в правильном формате. Затем преобразовать его в этом:
2008-03-03 15:21:33.000
Я получаю следующее сообщение об ошибке:
Data conversion failed. The data conversion for column "TIME_STAMP"
returned status value 2 and status text "The value could not be
converted because of a potential loss of data.
Я хочу, чтобы вставить Null, если преобразование не удалось или если метка времени является недействительным.
Я пробовал это, но он не работает.
(LEN(TRIM(TIME_STAMP)) < 23) || (TRIM(TIME_STAMP) == "")
|| (ISNULL(TIME_STAMP)) ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP)TIME_STAMP
Как вставить нуль, если преобразование с ошибкой timestamp и конвертировать только в том случае, если оно находится в допустимом формате?
Update: Дополнительные сообщения об ошибке, LEN
и TRIM
не поддерживаются для типа данных (DT_DBTIMESTAMP)
Благодаря
Только так мы ясны, штамп времени у вас есть есть только 17 символов, так что будет всегда возвращать NULL, а не преобразованное значение в первый условна. –
Да, вы правы, это должно быть 17. Но код не работает независимо. – Asynchronous
Я не думаю, что вам нужен тип TIME_STAMP. Вы, вероятно, ищете что-то вроде DT_DATE – billinkc