登录
首页 >  Golang >  Go问答

如何筛选数据以"int64"类型列?

来源:stackoverflow

时间:2024-03-19 11:06:29 411浏览 收藏

本文介绍了一种方法,用于筛选包含 int64 类型“create_time”列的大量结构化数据。这种数据通常通过使用 time.unix() 函数获取,其中“create_time”表示为自纪元以来的秒数。为了筛选特定时间范围内的数据,可以将该范围转换为 Unix 表示,即自纪元以来的秒数,然后根据以下条件过滤数据:create_time 大于或等于范围的开始时间,并且小于或等于范围的结束时间。这种方法可以有效地筛选大量数据,并适用于毫秒、微秒和纳秒时间戳。

问题内容

我获取了大量数据并将它们序列化为具有 int64 类型字段“create_time”的结构,例如:

type Log struct {
    ID            int       `mapstructure:"id"`
    Create_time   int64     `mapstructure:"create_time,omitempty"`
}

现在如果我想过滤2021-10-24 00:00:00和2021-10-25 00:00:00之间的数据,我该怎么做?


正确答案


假设create_time是使用time.unix()获得的,您可以找到范围的unix表示,然后过滤:

from:=time.Date(2021,10,24,0,0,0,0,time.Local).Unix()
to:=time.Date(2021,10,25,0,0,0,0,time.Local).Unix()

然后查找包含 create_time>=from && create_time<=to 的所有元素。

对时区进行必要的更改。如果 create_time 为毫/微/纳秒,则使用 unixmilliunixmicrounixnano

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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