quickfixgo / quickfix

The Go FIX Protocol Library :rocket:
https://www.quickfixgo.org/
Other
746 stars 290 forks source link

MSSQL script: Wrong data type for creation_time #664

Open TatuMon opened 2 months ago

TatuMon commented 2 months ago

My problem

Today I found out that, while the creation_time is saved following the specified timezone set in the configuration, it's not saving the timezone in the database, what makes StateMachine.CheckSessionTime behave weird.

How I found out

Config

Initially, my session was created with creation_time set at "2024-08-20 12:35:37.787", which is fine, but the session kept resetting and I found out that if I set StartTime=09:35:37 (or before) it works.

I assume this is because creation_time doesn't specify timezone, what makes the code assume it is in UTC and reduce 3 hours from it, thus making creation_time out of range

ackleymi commented 2 months ago

I think I understand the problem, and I think the only repo that might have a solution for us to follow here would be quickfix-j. I think changing the datatype for this db field is the wrong way to go, those db scripts are standard across all quickfix implementations, therefore the solution must be in code. If you could push a unit test that fails and demonstrates the problem that would help.

TatuMon commented 2 months ago

Sorry for the late response.

Currently I don't have the time to do so, I'm sorry, and I, honestly, don't know how to rn. I'm quite new to Golang and I've been learning the FIX protocol for a few days only.

I wanted to let you know about this issue