2017-03-25 2 views
3

ein Ich möchte die Zeichenkette ändern, die im Format dd/mm/yyyy ist, um in den Stock einzugeben.um das Datum von Zeichenkette zu Datum zu ändern Geben Sie in der Struktur

Ich verwende Hive-Version 1.0.0. Ich habe versucht mit:

TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'dd/mm/yyyy'))) 

Aber es gibt NULL zurück. Es funktioniert zwar mit Format 'dd-mm-yyyy'. Aber es gibt NULL mit 'dd/mm/yyyy' zurück.

Ich habe versucht mit CAST auch, aber es gibt mir auch nicht das richtige Ergebnis.

Antwort

4
M - month 
m - minutes 

hive> select TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'dd/MM/yyyy'))) ; 
OK 
2013-03-07 

oder

hive> select TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'd/M/y'))) ; 
OK 
2013-03-07 

oder

hive> select cast (regexp_replace('07/03/2013','(..)/(..)/(....)','$3-$2-$1') as date); 
OK 
2013-03-07 
0

würde ich zwei Möglichkeiten versuchen:

  1. Überprüfen Sie, ob einfache Arbeiten ersetzen:

TO_DATE (FROM_UNIXTIME (UNIX_TIMESTAMP (ersetzen ('07/03/2013' , '/', '-'), 'dd-MM-yyyy')))

  1. Werfen Sie einen Blick auf date documentation zu überprüfen, ob jede Funktion wird für Sie arbeiten
Verwandte Themen