हाइव - एक ही तालिका में दो तारीख स्तंभों की तुलना करने में असमर्थ

वोट
0

मैं दो स्ट्रिंग कॉलम उस में दिनांक मान है कि तुलना करने के लिए कोशिश कर रहा हूँ।

नीचे एक उदाहरण डाटासेट है

id start_dt   end_dt
1  2019-10-10 2019-10-10
2  2019-10-20 2020-01-01
3  2019-01-01 2020-01-01

मैं रिकॉर्ड जहां start_dt और END_DT बराबर हैं को खत्म करना चाहते हैं। मैं असमानता से नीचे के सभी की कोशिश की

परीक्षण से चयन * जहां TO_DATE (start_dt) <> TO_DATE (END_DT) परीक्षण जहां TO_DATE (from_unixtime (from_unixtimestamp (start_dt, 'yyyy-mm-dd'))) <> TO_DATE (from_unixtime (from_unixtimestamp (END_DT, 'yyyy से चयन * -mm-dd ')))

लेकिन उनमें से कोई भी असमानता जहां एक ही समानता पर काम करेगा के लिए काम किया।

अपेक्षित उत्पादन

id start_dt   end_dt
2  2019-10-20 2020-01-01
3  2019-01-01 2020-01-01

किसी भी मदद को बहुत सराहा जाएगा

13/02/2020 को 23:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

आप के लिए स्ट्रिंग प्रकार हो रही है के रूप में start_dt, end_dtकॉलम और हम सीधे पर कास्ट कर सकते date type(yyyy-MM-dd)और केवल गैर मिलान पंक्तियाँ प्राप्त करें!

इस क्वेरी का प्रयास करें:

select * from test where date(start_dt) <> date(end_dt);

हम तो बस कास्ट कर रहे हैं date typeऔर जहां खंड में तुलना की।

14/02/2020 को 00:22
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more