2015-09-09 5 views
6

मैं 'डीडी-एमएम-वाईय' प्रारूप में एक स्ट्रिंग को प्रारूप में 'डीडी-एमएम-वाईय' प्रारूप में प्रारूप में कैसे डाल सकता हूं? की तर्ज परहाइव कास्ट स्ट्रिंग टू डेट डीडी-एमएम-वाईय

कुछ:

CAST('12-03-2010' as date 'dd-mm-yyyy') 
+1

"विशिष्ट प्रारूप वाले दिनांक प्रकार" जैसी कोई चीज़ नहीं है। टाइप DATE को बाइनरी के रूप में संग्रहीत किया जाता है, और डिफ़ॉल्ट रूप से आईएसओ प्रारूप में प्रदर्शित किया जाता है; यदि आप इसे किसी अन्य प्रारूप में प्रदर्शित करना चाहते हैं, तो आपको केस-दर-मामले आधार पर इसे स्पष्ट रूप से प्रारूपित करना होगा। –

उत्तर

11

कोशिश:

from_unixtime(unix_timestamp('12-03-2010' , 'dd-MM-yyyy')) 
+11

यह अभी भी एक * स्ट्रिंग * है, * टाइमस्टैम्प * प्रारूप के साथ। इसे * दिनांक * पर डालने के लिए आपको इसे 'कास्ट (to_date (from_unixtime (unix_timestamp (STR_DMY,' dd-MM-yyyy ')) में लपेटना होगा) –

+0

और हाँ, मेरी इच्छा है कि वहां एक बेहतर तरीका था हाइव में तारीखों का उपयोग करें: - / –

1

AFAIK आप अपने स्ट्रिंग ISO प्रारूप में पुन: फ़ॉर्मेट करना होगा के रूप में एक दिनांक यह कास्ट करने के लिए सक्षम होने के लिए:

cast(concat(substr(STR_DMY,7,4), '-', 
      substr(STR_DMY,1,2), '-', 
      substr(STR_DMY,4,2) 
      ) 
    as date 
    ) as DT 

विवाद के लिए के रूप में एक स्ट्रिंग विशिष्ट प्रारूप के साथ एक दिनांक रखना है, तो यह दूसरी तरह के आसपास है, जब तक आप हाइव है 1.2+ और date_format()

=> आप जिस तरह से check the documentation किया जा सकता है?

संबंधित मुद्दे