alexbrainman / odbc

odbc driver written in go
BSD 3-Clause "New" or "Revised" License
352 stars 140 forks source link

SET TIMEZONE session parametr ignored by driver #117

Open adranwit opened 6 years ago

adranwit commented 6 years ago

The session timezone parameter is ignored by the driver which always uses time.Local

https://github.com/alexbrainman/odbc/blob/master/column.go#L141

case api.SQL_C_TYPE_TIMESTAMP:
    t := (*api.SQL_TIMESTAMP_STRUCT)(p)
    r := time.Date(int(t.Year), time.Month(t.Month), int(t.Day),
        int(t.Hour), int(t.Minute), int(t.Second), int(t.Fraction),
        time.Local)

Could you please allow use custom timezone setting

alexbrainman commented 6 years ago

Could you please allow use custom timezone setting

What exactly do you propose I should do?

Alex

NickTaylor- commented 4 years ago

Sorry to necro an old issue, but I am running into this myself and think I can probably spin up a PR for it. The MySQL package achieves this by having the database timezone/location provided in the DSN:

https://github.com/go-sql-driver/mysql/blob/1fbca2aabb09915d4f1006d01b271ad7778eec4f/dsn.go#L43

https://stackoverflow.com/a/40478160

Does this make sense as an approach here? I haven't really dug into the code, however it doesn't seem like it is parsing anything out of the DSN before passing it to ODBC.