Извлечь на основе фильтра по компоненту выражения в 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'