Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I've written a java routine to convert from Unix epoch to a java date
//java routine
public static Date unixTimestampToDate(String ts, Boolean isMs) {
Date date;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
if(!isMs){
date = new Date(Long.parseLong(ts));
return format.parse(date.toString());
} else {
return date = new Date(Long.parseLong(ts)*1000);
}
} catch (ParseException e) {
return date = new Date(Long.parseLong(ts));
}
}
I call this in a tMap with the output column set to Date "yyyy-MM-dd HH:mm:ss"
The incoming value is 1579478403484 which according to https://www.epochconverter.com/ should be Monday, January 20, 2020 12:00:03.484 AM. I can confirm this conversion is happening correctly by putting a tLogRow on the output of the tMap and seeing the following in the console
2020-01-20 00:00:03
However when i run the job i get the error
java.sql.SQLException: [Amazon](500310) Invalid operation: Load into table 'staging_adzerk_requests' failed. Check 'stl_load_errors' system table for details.;
on checking stl_load_errors i can see that redshift is complaining of
2020-01-20 0024:00:02 - Invalid Date Format - length must be 10 or more
It looks like Talend is formatting the date wrong in the tDBOutputBulkExec even though i also have that set to "yyyy-MM-dd HH:mm:ss".
Anyone any ideas how to fix this?
Thanks
ffs redshift datatype was DATE and not TIMESTAMP
ffs redshift datatype was DATE and not TIMESTAMP