sql >> Database teknologi >  >> RDS >> Mysql

Vælg poster efter tid i intervallet mellem 12:00:00 og 18:00:00 hver dag

Du har to problemer her:

  1. Du kan ikke henvise til kolonnealiasser i where-sætningen. I stedet skal du gentage din beregning i where-klausulen
  2. Brug TIME() funktion til at udtrække tidsdelen af ​​datatiden

Med disse to problemer behandlet får du:

select
    f.fly_reg,
    TIME(f.start_tid) AS st,
    f.start_hight 
    FROM vbsk_dk_02.fab_master_flyvedata f 
where TIME(f.start_tid) between '12:00:00' AND '18:00:00'

Som en mulighed, hvis du faktisk ikke har brug for tidsværdien i select, kan du fjerne den og bare have den i where-klausulen. Du kan også bruge HOUR() funktion, hvis det passer bedre. Med disse to ændringer vil din forespørgsel forenkles til:

select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18

hvilket er meget pænere :)



  1. Hvordan opdaterer man dropdown uden sideopdatering?

  2. Databaseskema til meddelelser til flere brugere

  3. dynamisk forespørgsel postgres

  4. OPDATERING Syntaks med ORDER BY, LIMIT og flere tabeller