登录
首页 >  Golang >  Go问答

比较 Go 语言中时间的大小

来源:stackoverflow

时间:2024-03-10 22:57:26 175浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《比较 Go 语言中时间的大小》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我想对当前时间和数据库数据进行比较。我的代码是:

var PayBlockedLog[] model.PayBlockedLog
    global.DB.Where("status = ?",0).Find(&PayBlockedLog)
    for i := 0; i 

看来我应该将 payblockedlog[i].unsealtime 转换为 int64。

尝试后,没有效果


解决方案


不要先获取然后过滤,而是在查询中进行过滤。这将节省时间和内存,并避免时区问题。

我不知道你使用的是什么数据库,也不知道unsealtime的列类型。如果它是 timestampdatetime (应该是),请对照 current_timestamp 检查它。

global
  .db
  .where("status = ? and current_timestamp < unsealtime", 0)
  .find(&payblockedlog)

如果是自 unix 纪元以来的秒数,请考虑将其转换为正常的 timestamp 列,以便可以使用日期/时间函数。有多种方法可以实现此目的,同时保留旧列的兼容性。

否则,您可以将当前时间转换为纪元秒。如何执行此操作取决于数据库。这是 postgres 中的。

global
  .DB
  .Where("status = ? and extract(epoch from current_timestamp) < UnsealTime", 0)
  .Find(&PayBlockedLog)

好了,本文到此结束,带大家了解了《比较 Go 语言中时间的大小》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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