我有一个在Azure SQL数据库中工作正常的查询,但我正在尝试在我的Android应用程序中使用它,我无法让它正常工作。这是为了及时找到预订的重叠。这是带有一些虚拟数据的SQL查询,到达和离开都是整数:
Select * from bourguestMob.tableObjectBookings
where tabObjID = 28
and day = 30
and month = 3
and year = 2015
and ((arrival <= 1600 and depart > 1600)
or (arrival< 1800 and depart >= 1800));
使用提供的移动服务,我必须使用以下内容:
tableObjectBookingsTable.where().field("tabObjID").eq(tables.get(i).getId())
.and().field("day").eq(day).and().field("month").eq(month).and().field("year").eq(year)
.and().field("arrival").lt(intTime).or().field("arrival").eq(intTime).and().field("depart").gt(intTime)
这就是我的部分内容,但我认为查询的某些部分需要嵌套才能正确评估。
答案 0 :(得分:0)
我认为您想要的是将查询的结尾更改为:
.and(field("arrival").lt(intTime).or()
.field("arrival").eq(intTime).and().field("depart").gt(intTime))
帮助我查看oData字符串以检查是否正确,请查看一些复杂查询的示例: