登录
首页 >  Golang >  Go问答

向数据库插入时间戳 - 使用 gocql 和 cqlsh

来源:stackoverflow

时间:2024-03-06 20:12:27 413浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《向数据库插入时间戳 - 使用 gocql 和 cqlsh》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

在 cassandra 数据库中写入时间戳所需的格式:

2021-01-17 21:51:46.195

使用 cqlsh 语法进行插入查询:

  1. 我能够使用 totimestamp(todate(now())) 编写上述格式

  2. 使用 cqlsh,无法使用 tounixtimestamp(now()) 编写上述格式。 tounixtimestamp(now()) 写入格式为 2021-01-17 21:51:46.195000+0000

layout := "2006-01-02T15:04:05.000Z"

    timestamp := "2021-01-17T21:51:46.195Z"
    createdDate, err := time.Parse(layout, timestamp)
    insertQueryString = "INSERT INTO mytable(created_date) " + "VALUES (?)"

gocql.session.query(insertquerystring,createddate).exec()代码还将createddate写入数据库,类似于cqlsh的tounixtimestamp(now())的格式,即2021-01-17 21:51: 46.195000+0000如下图:

jimb 已经解释过:“同样,time.time 没有格式。如果需要,您可以将其格式化为字符串,这在许多其他答案中都有解释。”

但是,

如何使 gocql.session.query(insertquerystring,createddate).exec()createddate 写入 2021-01-17 21:51:46.195?因为 cqlsh 可以使用 totimestamp(todate(now()))能够编写所需的格式


解决方案


Cassandra 不会将时间戳保存为字符串,它以 long 数字的形式存储在数据库中,毫秒精度为 8 个字节长(请参阅 protocol specification)。将数字转换为字符串是客户端程序的责任,cqlsh 是 Cassandra 附带的基于 python 的客户端。 cqlsh 具有控制如何呈现时间戳的配置选项 - 这是 cqlshrc configuration filedatetimeformat 选项,您可以自定义它以根据需要打印日期。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>