Máte zde dva problémy:
- V klauzuli where nelze odkazovat na aliasy sloupců. Místo toho musíte svůj výpočet zopakovat v klauzuli where
- Použijte
TIME()
funkce pro extrakci časové části datatime
Po vyřešení těchto dvou problémů získáte:
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'
Volitelně, pokud ve skutečnosti nepotřebujete hodnotu času v selectu, můžete ji odstranit a mít ji jen v klauzuli where. Můžete také použít HOUR()
funkce, pokud to lépe vyhovuje. S těmito dvěma změnami by se váš dotaz zjednodušil na:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
což je mnohem úhlednější :)