I have different values in Google datastore column TS. The column type is string
. Here are bunch of values
1994-11-04T13:15:30Z
1994-11-06T13:15:30Z
1994-11-05T08:15:30-05:00
1994-11-07T08:15:30-05:00
Now these values are in 2 different formats. The one with Z
represent the timestamp in UTC timezone. However, the one with the offset is representing local timezone (am I correct here?)
Now the problem is that the query that we are making in our project does ordering based on this column i.e.,
query := datastore.NewQuery(myEntityType).
Namespace(myNameSpace.String()).
Order("-TS")
rows := make([]domain.datastore.rows, 0)
_, err := r.client.GetAll(ctx, query, rows)
There client
is cloud.google.com/go/datastore
object.
I am unable to test this in my local but in prod, the end user are seeing these things out of order. However, if I go to datastore UI, and sort values by clicking on TS
column, they order just fine. Which is confusing me that if the error was on sorting, shouldn't the error be there on UI as well?
So I am not sure how to fix this bug. Should I convert Google Datastore column to Timestamp (can we do so?). Or should I fix the code to persist consistently?