Извлечь на основе фильтра по компоненту выражения в ETL

У меня есть условие фильтра на основе даты. где нужно получить записи между датами. в фильтре по выражению я дал, как показано ниже поле даты тип даты и формат YYYYMMDD

fieldname >= '20020502' and fieldname <= '20050430'

но записи не передаются следующему компоненту.

Я дал условие правильно?

4 ответа

Первый момент, который вам нужно проверить, это тип данных поля.

Если поле имеет тип date или datetime, тогда используйте непосредственно такие функции, как date_diff() или около того.

Если поле имеет тип string или decimal, то перед использованием таких функций, как date_diff(), необходимо выполнить приведение типов к дате или дате.

Спасибо

Arijit

Как вы упомянули, что

поле уже имеет тип данных даты в формате ГГГГММДД

Вам нужно только ввести правую часть выражения.

 my_date >= (date("YYYYMMDD")) "20150102" && my_date <= (date("YYYYMMDD")) "20150105"

Учитываются входные данные и вывод:

20150101

20150102  --> with the above condition goes to output

20150103  --> with the above condition goes to output

20150104  --> with the above condition goes to output

20150105  --> with the above condition goes to output

20150106

У меня есть другой метод, который всегда работает....

Используйте функцию date_diff для того же....

Условие будет предоставлено как ниже:

Date_diff(date1,fieldname).days >0 & & date_diff(date2,fieldname).days<0

Попробуйте ввести даты.

(date("YYYYMMDD"))fieldname => '20020502' and (date("YYYYMMDD"))fieldname <= '20050430'
Другие вопросы по тегам