一个是golang生成的当前时间戳,但是返回的是int64位的time.Now().Unix()一个是从数据库中取出的的时间戳1470219268我要做时间比较[if time.Now().Unix() > 1470219268]。。。但是一直报错 invalid operation: now - node.AlarmMax_SignTime (mismatched types int64 and int)我在网上找了许久,都没有一个很好的办法,比如讲数据库中的时间戳转化为时间再对比,也不行。。。
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
在1.7.1下测试是可以比较的
func main() { if time.Now().Unix() > 1470219268 { fmt.Println("aaa") } }
没有问题。
而且从报错信息来看,也只是int64和int不能直接比较,做一下类型转换就行了。
杨魅力
TA贡献1811条经验 获得超6个赞
从数据库解析出来是定义的struct么?要是struct就把类型换成int64 ,不是就 time.Now().Unix()>int64(1470219268)
另外 要是直接是time.Now().Unix()>int64(1470219268) go是不会报错的
你可能是定义了一个变量比如
a:=1470219268
time.Now().Unix()>a 这样子会报错 a默认为int
要是这样子
var a int64
a=1470219268
time.Now().Unix()>a 这样子也是没问题的。
- 2 回答
- 0 关注
- 5201 浏览
添加回答
举报
0/150
提交
取消