2016-07-30 25 views
-3
select truckid 
from truck_log 
where '20160804' between ruck_log.pickupdate and truck_log.ETA 
    and '20160806' between truck_log.pickupdate and truck_log.ETA 
vergleichen

Wie zwei Datumsangaben innerhalb where-Klausel zu vergleichen, wenn ich dies tat, akzeptiert die Abfrage nur den ersten Vergleich?Wie mehrere Daten in Where-Klausel in sql

+3

Welche DBMS verwenden Sie? –

+1

Was meinen Sie mit 'die Abfrage akzeptiert nur den ersten Vergleich?' –

+0

'UND' oder' ODER' Sie sollten einen von ihnen verwenden. – NEER

Antwort

-1

Add "OR" anstelle von "AND" in where-Klausel:

Abfrage:

select truckid from truck_log 

where ('20160804' between truck_log.pickupdate and truck_log.ETA) 

     or ('20160806' between truck_log.pickupdate and truck_log.ETA) 
0

Ist ruck_log ein Tippfehler und sollte Truck_log sein?

Wenn das stimmt, diese

select truckid 
from truck_log 
where '20160804' between truck_log.pickupdate and truck_log.ETA 
    and '20160806' between truck_log.pickupdate and truck_log.ETA 

werden alle Zeilen auswählen, Datum zwischen Übernahmedatum und ETA

  <-- 20160804 20160806 --> 
pickupdate       ETA 

, wenn Sie nur dann erforderlich, über eine oder zweite, Verwendung oder Klausel auswählen müssen statt UND.