Masz tutaj dwa problemy:
- Nie możesz odwoływać się do aliasów kolumn w klauzuli WHERE. Zamiast tego musisz powtórzyć obliczenia w klauzuli WHERE
- Użyj
TIME()
funkcja wyodrębniania części czasu z czasu danych
Po rozwiązaniu tych dwóch problemów otrzymujesz:
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'
Opcjonalnie, jeśli faktycznie nie potrzebujesz wartości czasu w zaznaczeniu, możesz ją usunąć i po prostu umieścić w klauzuli WHERE. Możesz także użyć HOUR()
funkcjonować, jeśli to lepiej. Po wprowadzeniu tych dwóch zmian zapytanie uprościłoby się do:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
co jest o wiele ładniejsze :)