मैं इस क्वेरी को लिखने के लिए Impala में SQL का उपयोग कर रहा हूं। मैं इस तरह एक क्वेरी चलाने के प्रयोजनों के लिए एक तिथि प्रारूप में एक तिथि स्ट्रिंग, YYYYMMDD प्रारूप में संग्रहीत, कन्वर्ट करने के लिए कोशिश कर रहा हूँ:इम्पाला में दिनांक YYYYMMDD स्ट्रिंग को कनवर्ट करें
SELECT datadate,
session_info
FROM database
WHERE datadate >= NOW() - INTERVAL 5 DAY
ORDER BY datadate DESC;
के बाद से >= NOW() - INTERVAL 5 DAY
कोड YYYYMMDD तार के साथ काम नहीं करेंगे, मैं 'इसे उस दिनांक प्रारूप में बदलने के लिए एक तरीका ढूंढना पसंद है जो इस प्रकार की क्वेरी के साथ काम करेगा। मेरे बारे में सोचा है कि यह इस (अन्य SQL क्वेरी संपादकों के बारे में इसी तरह के सवाल के आधार पर) की तरह कुछ दिखना चाहिए है, लेकिन यह इम्पाला में काम नहीं कर रहा:
SELECT datadate,
session_info,
convert(datetime, '20141008', 102) AS session_date
FROM database
WHERE session_date >= NOW() - INTERVAL 5 DAY
ORDER BY session_date DESC;
किसी को भी पता है कि इम्पाला में यह करने के लिए?
संपादित करें:
मैं अंत में समस्या का काम कर समाधान मिल गया। CAST
या CONVERT
के विन्यास का उपयोग कर प्रयास में से कोई भी इम्पाला में काम करेगा, लेकिन नीचे दिए गए क्वेरी समस्या का हल और पूरी तरह से काम कर रही है, जिससे तारीख गणित एक स्तंभ स्ट्रिंग मूल्यों से युक्त पर किया जा करने के लिए:
SELECT datadate,
session_info
FROM database
WHERE datadate >= from_unixtime(unix_timestamp(now() - interval 5 days), 'yyyyMMdd')
GROUP BY datadate
ORDER BY datadate DESC;
'माह (20141008) 'और' वर्ष (20141008) ' –
@ vkp' माह()' और 'वर्ष()' फ़ंक्शन दिनांक या टाइमस्टैम्प के रूप में संग्रहीत इंपला डेटा में काम करते हैं, लेकिन यह नहीं दिखता है स्ट्रिंग डेटा के लिए काम करने के लिए प्रतीत होता है। – nxl4
दस्तावेज़ीकरण को देखें http://www.cloudera.com/content/cloudera/en/documentation/cloudera-impala/latest/topics/impala_datetime_functions.html –