2015-09-09 7 views
6

Wie kann ich einen String im Format gegossen 'dd-MM-yyyy' auf ein Datum Art auch im Format "TT-MM-yyyy in Hive?Hive warfen Zeichenfolge Datum TT-MM-yyyy

Etwas entlang der Linien von:

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

Es gibt nicht so etwas wie eine „Datumsart mit bestimmtem Format“. Typ DATE wird als Binärdatei gespeichert und standardmäßig im ISO-Format angezeigt. Wenn Sie es in einem anderen Format anzeigen möchten, müssen Sie es von Fall zu Fall explizit formatieren. –

Antwort

11

Versuch:

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

Das ist immer noch ein * String *, mit * TimeStamp * -Format. Um es auf ein * Datum zu werfen * Sie wickeln muss es in 'Besetzung (to_date (FROM_UNIXTIME (unix_timestamp (STR_DMY, 'dd-MM-yyyy'))) als Datum)' –

+0

Und ja, ich wünschte, es gäbe einen besseren Weg Daten in Hive manipulieren: - / –

1

AFAIK Sie Ihre String im ISO-Format umformatieren müssen in der Lage sein es als Datum zu werfen:

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

Um disp lag ein Datum als String mit bestimmten Format, dann ist es die anders herum, es sei denn, Sie Hive 1.2+ haben und verwenden können date_format()

=> haben Sie check the documentation durch die Art und Weise?