Тук имате два проблема:
- Не можете да препращате към псевдоними на колони в клаузата where. Вместо това трябва да повторите изчислението си в клаузата where
- Използвайте
TIME()
функция за извличане на частта от времето на datatime
С тези два проблема вие получавате:
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'
Като опция, ако всъщност не се нуждаете от стойността на времето в избора, можете да я премахнете и просто да я поставите в клаузата where. Също така можете да използвате HOUR()
функция, ако това подхожда по-добре. С тези две промени, вашата заявка ще се опрости до:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
което е много по-подредено :)