BUG OR ERROR : Date UTC Method

Hi All,

I am using Date.UTC() method to generate last month date & using below syntax which seems to be fine.

Date.UTC(Date.now().minusMonths(1).getFullYear(),Date.now().minusMonths(1).getMonth(),0)

And output preview is also fine.
image

But while I am inserting data into Orcale DB, 1 day is getting subtracted from the date.
image

Not able to figure out where is the issue. Tried by changing date data type to varchar2 at DB level…but the value remain same.

Looks like there is some timezone conversion being applied. The time in the preview is “00:00:00”, while the time in the other screenshot is “20:00:00”. Is the value being converted at some other point in the pipeline or oracle?

In pipeline data value remain same before the oracle insert snap, value is getting changed in Oracle DB.
But ideally it should insert value passed by pipeline only. Seems like in Oracle insert Snap…oracle timestamp is used which is generating this kind of problem.

@virender.prajapati I have seen this happening to me in MySQL. I used toLocalDateTimeString() function before inserting it into the DB and worked fine.

You can try this in your mapper,
Date.UTC(Date.now().minusMonths(1).getFullYear(),Date.now().minusMonths(1).getMonth(),0).toLocaleDateTimeString({“format”: “yyyy-MM-dd HH:mm:ss”,“timeZone”:“UTC”})

You can also look into oracle jdbc url properties

@virender.prajapati Can I ask if the snaplex nodes or OracleDB have a timezone set to something other than UTC?

Thanks @jaybodra , It is working fine.

Yes, Oracle DB & Snaplex set to different time zones…that’s why it was happening.
Thanks for your support.