ここには2つの問題があります:
- where句で列エイリアスを参照することはできません。代わりに、where句で計算を繰り返す必要があります
-
TIME()
を使用します データ時間の時間部分を抽出する関数
これらの2つの問題に対処すると、次のようになります。
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'
オプションとして、selectで実際に時間値が必要ない場合は、それを削除してwhere句に含めることができます。また、HOUR()
を使用することもできます それがより適している場合は機能します。これらの2つの変更により、クエリは次のように簡略化されます。
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
これはとてもきれいです:)