go - 从 RethinkDB 获取时间

go - Get time from RethinkDB

我在 Go 中有一个结构 Quote

type Quote struct{
    CreatedAt int64 `gorethink:"createdAt"`
    // Other fields...
}

我写入RethinkDB查询数据成功

result,err:=r.Table("quote").GetAll(ids...).Run(session)

defer result.Close()

        if err!=nil{
            fmt.Println(err)
        }
        var quotes []Quote
        err=result.All(&quotes)

它确实得到了真实的结果,但是 none 条记录在 CreatedAt 字段中有值。我在数据库中用于 createdAt 的时间格式是自纪元 UTC 以来的毫秒数,我打算将它们用作数字来计算

之后

我花时间阅读了 GoDocs,发现:

func (t Time) Unix() int64

所以我认为 int64CreatedAt 的正确类型,但它没有用。我应该怎么办?如何获取时间数据?

time.Time 也不起作用。如果使用 time.Time,结果总是 0001-01-01 00:00:00 +0000 UTC(如果转换为毫秒,则类似 0 值)

因为当我在NodeJS中构建相同的服务器时,我使用了Date.Now(),在这种情况下我需要寻找一个等效的类型,returns一个数字供我稍后计算

使用 gorethink 时,驱动程序将自动与 GO 的本机数据类型相互转换。更改您的结构以使用 time.Time:

type Quote struct{
    CreatedAt   time.Time  `gorethink:"created_at"`
}

有关更多示例,您可以查看相应的 test cases

我自己设法找到了答案。在这种情况下使用的真实类型是 float64 以便获取的结果与数据库资源管理器中的匹配(例如,1458184908597 毫秒)