Продолжайте получать неверную строку ошибки функции informatica для преобразования в Date - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь преобразовать nvarchar в дату, но я получаю эту ошибку ниже

TT_11132 При преобразовании [Выражение] возникла ошибка при оценке выходного столбца [Run_Date1]. Сообщение об ошибке [<> [TO_DATE]: неверная строка для преобразования в Date ... t: TO_DATE (u: '20190304', u: 'MM / DD / YYYY HH24: MI: SS')].

но моя функция не включает «ММ / ДД / ГГГГ ЧЧ24: МИ: СС». Вот моя функция для справки.

TO_DATE (TO_CHAR (to_date (RUN_DATE), 'ММДДГГГГ'), 'мм / дд / гггг')

Пожалуйста, помогите

Спасибо

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Самик прав, просто используйте TO_DATE(RUN_DATE, 'YYYYMMDD')

Я хотел бы добавить несколько объяснений, почему ваша функция не так.Так что уберите его из самого внутреннего:

to_date(RUN_DATE)

Преобразует строку RUN_DATE в DATE, пытаясь угадать формат, поскольку он не был задан.Давайте назовем результат этого как NewDate и проанализируем далее:

TO_CHAR(NewDate,'mmddyyyy')

Теперь это преобразует NewDate в строку в формате mmddyyyy.Давайте назовем это как NewString_MMDDYYYY и посмотрим, куда оно нас приведет.Это оставляет конечную функцию как:

TO_DATE(NewString_MMDDYYYY,'mm/dd/yyyy')

Обнаружили ошибку еще?Вы говорите Informatica преобразовать NewString_MMDDYYYY в дату.И вы сообщаете функции, что она написана в формате mm/dd/yyyy - который, очевидно, не используется, поскольку функции TO_CHAR было приказано сохранить ее в mmddyyyy.

Итак, если ваш ввод RUN_DATE в YYYYMMDD формате, тогда все, что вам нужно сделать, это TO_DATE(RUN_DATE, 'YYYYMMDD').Если RUN_DATE используется другое форматирование, просто замените второй аргумент соответствующим образом.

0 голосов
/ 07 марта 2019

Замените все на TO_DATE(RUN_DATE, 'YYYYMMDD')

...