Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
See why IDC MarketScape names Qlik a 2025 Leader! Read more
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

TMAP Less than Date comparison expression

Hi,

 

I have a column from an input file row5.DATE_OF_BIRTH with the date pattern set as: "dd-MM-yyyy"

The output column has also the same date pattern set.

 

I am trying to compare the date from row5.DATE_OF_BIRTH to 01-01-1900.

If it is less than "01-01-1990" or null, I want to null the output value, else I want to use the date in row5.DATE_OF_BIRTH.

 

Please could you help.

 

Thanks

K

 

Labels (2)
1 Solution

Accepted Solutions
TRF
Champion II
Champion II

Try this one:

row5.DATE_OF_BIRTH == null || 
TalendDate.compareDate(row5.DATE_OF_BIRTH, 
       TalendDate.parseDate("dd-MM-yyyy", "01-01-1990", "dd-MM-yyyy")) < 0 ? null : row5.DATE_OF_BIRTH 

View solution in original post

6 Replies
TRF
Champion II
Champion II

Hi,

Should work with something like that:

row5.DATE_OF_BIRTH == null || 
TalendDate.compareDate(row5.DATE_OF_BIRTH, 
TalendDate.parseDate("dd-MM-yyyy", "01-01-2010", "dd-MM-yyyy)) < 0) ? null : row5.DATE_OF_BIRTH

Hope this helps.

Anonymous
Not applicable
Author

Thanks for the response,

 

this doesn't seem to work.

 

I also added double quotes to dd-MM-yyyy.

I get an error (object is not an instance of declaring class)

TRF
Champion II
Champion II

You're right, the correct syntax is:

 

row5.DATE_OF_BIRTH == null || 
TalendDate.compareDate(row5.DATE_OF_BIRTH, 
       TalendDate.parseDate("dd-MM-yyyy", "01-01-1990", "dd-MM-yyyy")) < 0) ? null : row5.DATE_OF_BIRTH 

Can you share your tMap with the schemas?

Anonymous
Not applicable
Author

please see attached.

 


MAP.PNG
input.PNG
output.PNG
TRF
Champion II
Champion II

Try this one:

row5.DATE_OF_BIRTH == null || 
TalendDate.compareDate(row5.DATE_OF_BIRTH, 
       TalendDate.parseDate("dd-MM-yyyy", "01-01-1990", "dd-MM-yyyy")) < 0 ? null : row5.DATE_OF_BIRTH 
Anonymous
Not applicable
Author

This worked .

 

I had to remove the final   "dd-MM-yyyy" from TalendDate.parseDate("dd-MM-yyyy", "01-01-1990", "dd-MM-yyyy")) to make it work.

 

Thank you

 

Would you happen to know how i can limit the output of a row to 50chars even though the input may be 300charrs?