我在Google数据存储区 TS 中具有不同的值。 类型列为string
。这是一堆价值观
1994-11-04T13:15:30Z
1994-11-06T13:15:30Z
1994-11-05T08:15:30-05:00
1994-11-07T08:15:30-05:00
现在这些值采用2种不同的格式。带有Z
的那个代表UTC时区的时间戳。但是,具有偏移量的那个代表本地时区(我在这里正确吗?)
现在的问题是,我们在项目中进行的查询确实基于该列进行排序,即
query := datastore.NewQuery(myEntityType).
Namespace(myNameSpace.String()).
Order("-TS")
rows := make([]domain.datastore.rows, 0)
_, err := r.client.GetAll(ctx, query, rows)
那里client
是cloud.google.com/go/datastore
对象。
我无法在本地进行测试,但在产品中,最终用户发现这些东西乱七八糟。但是,如果我转到数据存储区UI,并通过单击TS
列对值进行排序,则它们的顺序就很好。令我感到困惑的是,如果错误是在排序上,那么错误也不应该出现在UI上吗?
因此,我不确定如何解决此错误。我应该将Google Datastore列转换为Timestamp吗(可以吗?)。还是应该修复代码以保持一致?