Du har två problem här:
- Du kan inte referera till kolumnalias i where-satsen. Istället måste du upprepa din beräkning i where-satsen
- Använd
TIME()
funktion för att extrahera tidsdelen av datatiden
Med dessa två frågor åtgärdade 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 ett alternativ, om du faktiskt inte behöver tidsvärdet i select, kan du ta bort det och bara ha det i where-satsen. Du kan också använda HOUR()
fungerar om det passar bättre. Med dessa två ändringar skulle din fråga förenklas till:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
vilket är mycket snyggare :)