gpt4 book ai didi

GoCQL : Marshal string into timestamp

转载 作者:IT王子 更新时间:2023-10-29 01:44:35 26 4
gpt4 key购买 nike

我正在开发一个带有聚类列的时间序列数据模型,即

CREATE TABLE events (
id text,
time timestamp,
type text,
val double,
PRIMARY KEY (id, time)
) WITH CLUSTERING ORDER BY (time DESC)

我希望针对分区列“id”和集群列“time”执行选择。例如id:='1',timestamp:='2017-10-09'

query := "SELECT id, time, type, val FROM events WHERE id=? AND time>=?"
iterable := Cassandra.Session.Query(query, id, timestamp).Consistency(gocql.One).Iter()
for iterable.MapScan(m) {
found = true
event = Event{
ID: m["id"].(string),
Time: m["time"].(time.Time),
Type: m["type"].(string),
Val: m["val"].(float64),
}
}

检查iterable.Close() err后,发现编码错误

{"errors":["无法将字符串编码为时间戳"]}

我该如何解决这个问题?

最佳答案

这是我最终通过将字符串文字(时间戳)转换为类型 time.Time 来解决这个问题的方法

timestamp = "2017-10-09T13:25:00.000Z"
tsAfter,err = time.Parse(model.TimeLayout, timestamp)
if err != nil {
errs = append(errs, err.Error())
}

log.Printf("GET param [id = %s]", idStr)
log.Printf("GET param [after = %s]", tsAfter.String())

m := map[string]interface{}{}
query := "SELECT id, time, type, val FROM events WHERE id = ? AND time >= ?"
iterable := cql.Session.Query(query, idStr, tsAfter).Consistency(gocql.One).Iter()

for iterable.MapScan(m) {
eventList = append(eventList, model.Event{
ID: m["id"].(string),
Time: m["time"].(time.Time),
Type: m["type"].(string),
Val: m["val"].(float64),
})
m = map[string]interface{}{}
}

关于GoCQL : Marshal string into timestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46640544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com