Hai due problemi qui:
- Non puoi fare riferimento agli alias di colonna nella clausola where. Invece, devi ripetere il calcolo nella clausola where
- Usa
TIME()
funzione per estrarre la parte temporale del datatime
Con questi due problemi risolti, ottieni:
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'
Come opzione, se non hai effettivamente bisogno del valore del tempo nella selezione, puoi rimuoverlo e averlo solo nella clausola where. Inoltre, puoi usare HOUR()
funzione se si adatta meglio. Con queste due modifiche, la tua query si semplificherebbe in:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
che è molto più ordinato :)