一个巡逻显示问题,需求是假设今天有N次巡逻(从地点A出发到地点B为一次巡逻,以此类推到地点N),每次用时不等,有字段一个为开始时间,一个为结束时间还有地点名!现在想做的就是如何根据当前时间取出下一个未巡逻的地点数据呢?我需要查询显示出他们,然而我要做到只查当前2015年7月20日14:47:48距离这个最近的一条未巡逻数据!我该如何判断我当前时间为巡逻表中的第几条数据和该怎么写判断条件才能做到这个效果呢?园豆可加,我先给50。。
应大叔要求,我详细说明一下字段,数据,需求。
字段有线路名称及ID,地点名称及ID,企业名称及ID,计划生成数据时规定的开始巡逻时间和结束时间(即为从地点A到地点B的开始结束时间)因为存在多个地点,故而会生成多条巡逻开始结束时间不同的数据,还有字段漏巡和已巡检,但是这个和我是没有关系的,因为上面要我人工判断待廵数据。
数据则是计划生成后产生的一系列数据,比如我计划包括今天的未来七天的巡逻计划。
需求则是我需要查询出当前时间以前的所有已巡检和漏巡的数据。再另外查出一条待廵数据。(例子:我查询昨天到今天此时此刻的数据,昨天有十条数据,今天有数据1:00-2:30,3:30-5:00,6:00--7:30这样的三条数据,现在时间为15:10,那么我需要查询出前面两条数据包括昨天十条共计12条数据出来,该如何做判断条件呢?甚至于(时间为2:20呢?那我只需要查询出今天的一条数据共计11条数据出来。该如何判断呢?))
这不是园豆多少的问题。
问题在于,就算我懂一点SQL,而且也做过巡更软件,然而还是没有看明白你的需求。
你能把已知条件,数据,需求说的再明白一点吗?
你看看够明白了不= =。有那里不清楚,我可以再详细说明一下。
@子明: 一般必须假设数据无误的话,时间段是不重叠的。
如果你不纠结于一定要一句SQL实现功能的话,应该逻辑上是比较容易的吧?
1、按时间排序数据
2、找出你要求的时间点附近的数据,定位到需求的一条。
3、...
@爱编程的大叔: 没错是不重叠的,正如你所说的,我需要定位到需求的那一条。
我现在是做到了时间不在范围之内的。entTime<time这样就查询出了这个时间点以前的所有数据,然后再单独查询一条开始和结束时间都大于当前时间的数据,合并为一句sql。
但问题是在于,我要如何做到判断出时间在范围之内的,比如有一条数据的结束时间和我当前时间为相差1分钟,那就是它已经巡检完毕了,而且endtime>time,这样一来按上面的方法就行不通!
@子明: 你在SQL中把这两种情况的条件OR一下,两种数据都取出来,然后用代码判断。