2017-02-12 6 views
0

이 저를 도와주세요 날짜 기록을 게시 한 후, 유지 보수를 위해 가서 특정 날짜에 남아있는 차량 검색이 날짜를 게시MySQL의 쿼리 견인의 범위 견인 타임 스탬프 열 사이의 검색은

암 이러한 결과는 시간 범위에서 분리됩니다. 내 표는 다음과 같습니다

Ticket   VEhicle   Type   Model   Center   Depart   DateIn      DateOut 
________________________________________________________________________________________________________________________________________________ 
JBN-115   D113   MOTO BIKE  YBR125   254    403    2017-01-16 16:38:00   2017-01-25 08:54:00 
JBN-122   S001   CAR    TYT HILUX  254    410    2017-01-17 08:39:00   2017-01-17 09:39:00 
JBN-123   C003   MOTO BIKE  MAX100R   254    403    2017-01-16 09:50:00   2017-01-17 09:41:00 
JBN-124   D313   MOTO BIKE  YBR125   254    403    2017-01-16 16:38:00   2017-01-25 08:54:00 
JBN-125   S002   CAR    TYT HILUX  254    410    2017-01-17 12:39:00   2017-01-18 14:39:00 
JBN-126   C053   MOTO BIKE  MAX100R   254    403    2017-01-16 08:41:00   2017-01-31 09:41:00 
JBN-127   D133   MOTO BIKE  YBR125   254    403    2017-01-18 15:38:00   2017-01-25 08:54:00 
JBN-128   S008   MOTO BIKE  TYT HILUX  254    410    2017-01-17 13:13:00   2017-01-20 09:24:00 
JBN-129   C043   MOTO BIKE  MAX100R   254    403    2017-01-18 08:41:00   2017-01-31 09:41:00 
JBN-122   S012   CAR    TYT HILUX  254    410    2017-01-17 08:50:00   2017-01-17 19:39:00 
JBN-122   S062   MOTO BIKE  YBR125   254    410    2017-01-17 14:50:00   

차량은 게시 된 날짜 범위에 유지 보수를 위해 갔다는 여전히 날짜 출력이 지난 경우에도 결과에 표시됩니다, 유지 보수 장소를 letf하지 않은 그렇다면 게시일. 또는 날짜가 비어 있으면 아직 장소를 떠나지 않았기 때문에 계속 표시됩니다. 다음

Ticket   VEhicle   Type   Model   Center   Depart   DateIn      DateOut 
________________________________________________________________________________________________________________________________________________ 
JBN-122   S001   CAR    TYT HILUX  254    410    2017-01-17 08:39:00   2017-01-17 09:39:00 
JBN-122   S012   CAR    TYT HILUX  254    410    2017-01-17 08:50:00   2017-01-17 19:39:00 
JBN-125   S002   CAR    TYT HILUX  254    410    2017-01-17 12:39:00   2017-01-18 14:39:00 
JBN-128   S008   MOTO BIKE  TYT HILUX  254    410    2017-01-17 13:13:00   2017-01-20 14:24:00 
JBN-122   S062   MOTO BIKE  YBR125   254    410    2017-01-17 14:50:00   

:

그렇게 2017년 1월 17일 및 2017년 1월 18일

쿼리 기준에 네 가을부터이 차량을 찾아야한다 사이에 기록을 얻을 수있는 쿼리를 실행하고 나는이 시도했다

Type  8am  10am 12pm 2pm  4pm 
_________________________________________________ 
CAR   2  1  2  2  2 
MOTO BIKE 0  0  1  2  2 

:

나는이 같은 쿼리의 출력을 볼 호핑하고
+0

그리고 무엇을 시도 했습니까? –

+0

나는 위의 편집을 시도했지만 여전히 작동하지 않습니다. – Rhynix

답변

0

귀하의 시간 범위에 대한 조건이 예 8am 인 지 모르겠습니다. DateIn < '2017-01-17 00:00'및 DateOut < '2017-01-18 10:00'사이에 연결이 없습니다. 오전 8시 그리고 이것. 은 그래서 오전 8 당신은 당신의 사건을 맞게하는 경우에 조건을 수정할 수 있습니다 오전 8시

SET   @FromTime = '2017-01-17 00:00:00', 
      @ToTime  = '2017-01-18 23:59:59'; 

SELECT  Type, 
      sum(if(DateIn between @FromTime and @FromTime+interval 8 hour,1,0)) as `8am`, 
      sum(if(DateIn between @FromTime +interval 8 hour and @FromTime+interval 10 hour,1,0)) as `10am`, 
      sum(if(DateIn between @FromTime +interval 10 hour and @FromTime+interval 12 hour,1,0)) as `12am`, 
      sum(if(DateIn between @FromTime +interval 12 hour and @FromTime+interval 14 hour,1,0)) as `2pm`, 
      sum(if(DateIn between @FromTime +interval 14 hour and @FromTime+interval 16 hour,1,0)) as `4pm` 

FROM  Availability 

WHERE  costCente = '254' 
      AND DateIn >= @FromTime AND if(DateOut = '',DateIn,DateOut) <= @ToTime 

GROUP BY 1 
ORDER BY 1 DESC; 

에 자정 사이의 유지 보수에 아직도 얼마나 많은 차량을 계산하기위한 범위 시간을 가정합니다.

+0

그것은 나머지 시간에는 미래 날짜를 추가하지 않습니다. 날짜가 비어 있거나 게시 된 날짜 범위를 지난 것처럼 전체 날짜 동안 차량이 장소에 있어야합니다. (모든 시간 간격) – Rhynix

+0

나는 그것이 내 조건에 있다고 생각한다. if (DateOut = '', DateIn, DateOut) <= @ToTime –