0

我正在使用 GOCQL 查询一系列时间戳中的数据。当我查询数据 <= 某个时间时,下面的代码可以正常工作。当我查询数据> =某个时间时,它又可以正常工作了。当我结合这两个约束时,返回的切片是空的。

map := map[string]interface{}{}
read := fmt.Sprintf("SELECT * FROM employee_table WHERE user_id=%v AND posttime>='%v' AND posttime<='%v'", user_id, posttimeMin.Format("2006-01-02 15:04:05.000+0000"), posttimeMax.Format("2006-01-02 15:04:05.000+0000"))
    
    iter := Session.Query(query).Iter()
    for iter.MapScan(map) {
        readTable = append(readTable, employee_table{
            user_id: m["user_id"].(int),
            posttime: m["posttime"].(time.Time),
            room: m["room"].(string),
        })
        m = map[string]interface{}{}
    }
4

1 回答 1

0

很可能它不会返回任何内容,因为您的查询要求您拥有精确值为毫秒的数据条目2006-01-02 15:04:05.000+0000......当您使用>=or<=时,您应该有其他条目小于或大于此特定值。您必须检查有效的查询返回了哪些值。

于 2021-03-20T19:06:39.320 回答