2015-10-21 2 views
0

Я довольно новичок в Teradata. У меня есть столбец даты транзакции в источнике, который имеет некоторые действительные и недопустимые значения. Что мне нужно сделать, это принести действительные значения, которые находятся в формате YYYY-MM-DD HH:MM:SS.SSSSSS и передать нулевой целевые для всех недопустимых значенийФормат даты сопоставления в Teradata ГГГГ-ММ-ДД

Правила преобразования: если формат YYYY-MM-DD HH:MM:SS.SSSSSS затем переместить источник предназначаться еще переместить нулевой цель.

+1

Опубликовать некоторые допустимые и недопустимые строки. Это поможет дать правильный ответ. – Tammy

ответ

1

Только left join Ваша колонна с Sys_Calendar tables и с использованием COALESCE в части SEL должна заставить ее работать.

Если у вас все еще есть проблемы, введите дату в формате, который соответствует sys calendar. Неверные даты будут возвращены как NULL.

+0

Спасибо Tammy – Juvelle

+0

Таким образом, запрос работал, но у меня небольшая проблема. Мой столбец даты определяется как char в источнике, поэтому, когда я запускаю запрос после присоединения его значений возвращаемых значений junks и недопустимых дат – Juvelle

+0

Hi Juvelle, пожалуйста, преобразуйте char на дату используя букву (в качестве формата даты «ГГГГ-ММ-ДД ЧЧ: ММ: СС»), а затем выполните объединение. В идеале, если у вас есть огромные данные, лучше всего воспользоваться временной таблицей и предварять тип данных на сегодняшний день. Затем выполните соединение во временной таблице и в календаре sys. Пожалуйста, разместите свой запрос до сих пор, если вам нужно, чтобы мы рассмотрели его. – Tammy

Смежные вопросы