Tienes dos problemas aquí:
- No puede hacer referencia a alias de columna en la cláusula where. En su lugar, debe repetir su cálculo en la cláusula where
- Utilice el
TIME()
función para extraer la parte de tiempo del datatime
Con esos dos problemas resueltos, obtienes:
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'
Como opción, si en realidad no necesita el valor de tiempo en la selección, puede eliminarlo y simplemente tenerlo en la cláusula where. Además, puede usar HOUR()
función si eso se adapta mejor. Con esos dos cambios, su consulta se simplificaría a:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
que es mucho más ordenado :)