Você tem dois problemas aqui:
- Você não pode fazer referência a aliases de coluna na cláusula where. Em vez disso, você deve repetir seu cálculo na cláusula where
- Use o
TIME()
função para extrair a parte do tempo do datatime
Com esses dois problemas resolvidos, você obtém:
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 opção, se você não precisar realmente do valor de tempo no select, poderá removê-lo e apenas colocá-lo na cláusula where. Além disso, você pode usar o
HOUR()
funcionar se isso se adequar melhor. Com essas duas alterações, sua consulta seria simplificada para:select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
que é muito mais legal :)