आपके यहां दो मुद्दे हैं:
- आप जहां क्लॉज में कॉलम एलियासेस का उल्लेख नहीं कर सकते हैं। इसके बजाय, आपको अपनी गणना को जहां क्लॉज में दोहराना होगा
TIME()
का उपयोग करें डेटाटाइम का समय भाग निकालने के लिए कार्य करता है
उन दो मुद्दों के समाधान के साथ, आपको मिलता है:
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'
एक विकल्प के रूप में, यदि आपको वास्तव में चयन में समय मूल्य की आवश्यकता नहीं है, तो आप इसे हटा सकते हैं और बस इसे जहां खंड में रख सकते हैं। साथ ही, आप HOUR()
. का उपयोग कर सकते हैं कार्य करें यदि वह बेहतर है। उन दो परिवर्तनों के साथ, आपकी क्वेरी इस प्रकार सरल हो जाएगी:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
जो बहुत ज्यादा साफ है :)