0

特定の日付または特定の日付の期間で、指定された時間 (移動時間) (時間:分:秒) よりも小さい/大きい/等しいすべてのレコードをフェッチする必要があります。このため、クエリを作成しましたが、機能していません。クエリとデータベースの構造は次のとおりです。助けてください。

`SELECT vt.*, vt.id AS tripid,voi.vehicle_id,voi.fuelissue_id,voi.date, voi.driver_id,
voi.driver_name,voi.time_out,voi.time_in,voi.meter_reading_out,
voi.meter_reading_in ,voi.`departure_from`,voi.location_comments,
voi.reason,voi.date_in 
FROM vehicles_out_in voi 
INNER JOIN vehicle_trips vt 
ON voi.id=vt.voi_id 
WHERE 1=1 
AND TIMESTAMP(voi.date,voi.time_out)>=TIMESTAMP('2013-10-20','01:00:00') 
AND TIMESTAMP(voi.date,voi.time_out)<=TIMESTAMP('2013-10-25','06:00:00')
AND (TIMESTAMP(voi.date_in,voi.time_in)-TIMESTAMP(voi.date,voi.time_out)) <= '02:00:00') 
ORDER BY voi.id DESC`

DB構造:

`tbl1 : vehicles_out_in
driver_id           
driver_name         
category_id         
vehicle_id          
date                    
leavefor_location   
am                  
zo                  
time_out            
meter_reading_out   
reason                  
date_in                 
time_in                 
meter_reading_in    
departure_from          
returned_in         
fuelissue_id            
expected_trips          
reasonfor_lesstrips 
actual_trips            
vehicle_status          
location_comments`

   `tbl2: vehicle_trips
    id                     
    voi_id                 
    time_trip          
    date_trip          
    dumping_site           
    start_reading          
    meter_reading_site     
    total_weight           
    empty_weight           
    net_weight         
    receipt                
    uc_id`
4

1 に答える 1

0

どのようにあなたを構築するかTIMESTAMPは、まったく正しくありません。

voi.time_out特定の時点の間または特定の期間にわたるすべてのレコードをフェッチすると仮定します。time_outクエリの最後の 4 行を次のように置き換えてみてください (これが の後だと仮定しますtime_in):

AND 
(
 TIMESTAMP(concat(voi.date,,' ',voi.time_out)) 
  between TIMESTAMP('2013-10-20 01:00:00') 
  and     TIMESTAMP('2013-10-25 06:00:00')
 OR
 TIMESTAMPDIFF(SECOND,concat(voi.date_in,' ',voi.time_in),concat(voi.date,' ',voi.time_out)) <= 7200
)
ORDER BY voi.id DESC
于 2013-10-28T11:28:14.850 に答える