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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
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?