当前位置: 首页 > 面试题库 >

GoCQL:将字符串转换为时间戳

康元凯
2023-03-14
问题内容

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

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’,时间戳:=‘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后,发现编组错误

{“错误”:[“无法将字符串编组为时间戳”]}

我该如何解决?


问题答案:

这是我最后通过将字符串文字(带有时间戳)转换为类型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{}{}
}


 类似资料:
  • 问题内容: 我一直在寻找一种将字符串(以纪元时间)转换为日期的方法。 基本上,我需要使用this:(以字符串形式)并将其放入this:中。 我一直在看strptime和strftime,但似乎都没有为我工作。有什么建议么? 编辑:谢谢,伙计们。我将其转换为int ,将其转换为,然后在其上运行。完美地工作! 问题答案: 如果只有该值是整数而不是字符串,则可以调用。如果只有某种方法可以将字符串转换为整

  • 我想将字符串time < code > " 2019-06-20 13:30:31 " 转换为int ,我尝试使用以下代码,但得到的是< code>10190101,我的尝试有什么问题吗?

  • 问题内容: 我有这个约会时间,或类似的东西。 我想将其转换为时间对象,但除了以下方面,我无法产生任何输出: 我已经尝试过以下布局: 还有更多-没有一个起作用。 这就是我所说的: 如何从字符串创建时间对象? 问题答案: 您很可能使用了错误的布局,并且没有检查返回的错误。 布局必须是此日期/时间,格式为您输入的时间为: 请参阅以下工作代码: 输出(在Go Playground上尝试): 编辑: 在您的

  • 问题内容: 我在mysql中使用NOW()获取当前日期和时间。我想将日期值转换为varchar并将其与另一个字符串连接。我该怎么做? 问题答案: 使用DATE_FORMAT()

  • 问题内容: 我需要将以下格式的时间值字符串转换为秒,例如: 我需要使用正则表达式来执行此操作吗?我尝试使用时间模块,但是 抛出: 编辑 : 看起来像这样: 给出正确的结果。我只是使用了错误的模块。 问题答案: 对于Python 2.7:

  • 问题内容: 例如字符串: 我将把它们推回到数据库中正确的日期时间字段中,因此我需要将它们魔术化为实际的日期时间对象。 这是通过Django的ORM进行的,因此我无法使用SQL进行插入时的转换。 问题答案: 是将字符串解析为日期时间的主要例程。它可以处理各种格式,格式由你为其指定的格式字符串确定: 生成的对象是时区未使用的。 链接: 适用于strptime:Python 2和Python 3的 Py