scylladb/gocqlx

question: how can i do range query like date between ?

Closed this issue · 5 comments

i would like to select * from table where start_time <= nnn and start_time > mmm
How can i do this for begin time but need to specify GtOrEq

var DbObj []DbObjects
stmt, names := sb.Where(qb.LtOrEq("start_time")).ToCql()
q := s.session.Query(stmt, names).BindMap(qb.M{
"start_time": thisDateTime,
})
q.SelectRelease(&DbObjects)

you can do sb.Where(qb.LtOrEq("end_time"), qb.GtOrEq("start_time"))

Thanks..but in this case column is same (i.e. 'start_time'). I don't have 'end_time' column.

Sure, you can use name multiple times.

Since qb.M (map) can't have duplicate keys, i tried

var DbObj []DbObjects
stmt, names := sb.Where(qb.LtOrEq("start_time"), qb.GtOrEq("start_time"))).ToCql()
q := s.session.Query(stmt, names).BindMap(qb.M{
"start_time": thisDateTime,
"another_time": endTime,
})
q.SelectRelease(&DbObjects)

cql statement shows it picks up the same value for both 'start_time'

can you please provide me an example with BindMap ? THANKS