golang 比较时间大小

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


var PayBlockedLog[] model.PayBlockedLog

    global.DB.Where("status = ?",0).Find(&PayBlockedLog)

    for i := 0; i <len(PayBlockedLog); i++ {

        if time.Now().Unix() < PayBlockedLog[i].UnsealTime{


        }

    }

看来我应该将 PayBlockedLog[i].UnsealTime 转换为 int64。

试过后没有效果


慕桂英3389331
浏览 97回答 1
1回答

九州编程

而不是获取然后过滤,而是在查询中进行过滤。这将节省时间和内存,并避免时区问题。我不知道您使用的是什么数据库,也不知道UnsealTime.&nbsp;如果是timestampor&nbsp;datetime(应该是),请对照current_timestamp.global &nbsp;&nbsp;.DB &nbsp;&nbsp;.Where("status&nbsp;=&nbsp;?&nbsp;and&nbsp;current_timestamp&nbsp;<&nbsp;UnsealTime",&nbsp;0) &nbsp;&nbsp;.Find(&PayBlockedLog)如果距 Unix 纪元还有几秒钟,请考虑将其转换为普通timestamp列,以便可以使用日期/时间函数。有几种方法可以实现这一点,同时保持旧列的兼容性。否则,您可以将当前时间转换为纪元秒。如何执行此操作取决于数据库。这是在 Postgres 中。global &nbsp;&nbsp;.DB &nbsp;&nbsp;.Where("status&nbsp;=&nbsp;?&nbsp;and&nbsp;extract(epoch&nbsp;from&nbsp;current_timestamp)&nbsp;<&nbsp;UnsealTime",&nbsp;0) &nbsp;&nbsp;.Find(&PayBlockedLog)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go