2017-02-21 1 views
2

Wie ich eine Anzahl von Tagen von einem Datum subtrahieren kann, mit als Ergebnis ein anderes Datum, zum Beispiel: 2016.01.12 - 10 = 21/11/2016Substract Tage zu einem Datum in HIVE APACHE

+0

Wo? Wie in einer HiveQL-Abfrage? – TehTris

+1

Willkommen bei SO! Die Leute hier sind aufgeregt und begierig darauf, dir bei deiner Frage zu helfen, aber es ist wichtig, ihnen dabei zu helfen, dir zu helfen. Ziehen Sie in Betracht, ein [minimales, vollständiges und überprüfbares Beispiel] zu erstellen (http://stackoverflow.com/help/mcve). Es ist wichtig, weil es zeigt, was Sie bereits versucht haben, Ihren Denkprozess und was Sie erreichen möchten. Ziehen Sie auch die Verwendung von [Backticks] (http://stackoverflow.com/editing-help#comment-formatting) für Codeabschnitte in Betracht, da dies die Lesbarkeit erhöht. Zum Beispiel ist '41 + 1 = 42' einfacher zu lesen als 41 + 1 = 42. Wieder willkommen und gute Fähigkeiten, die vorwärts gehen :) – mbigras

Antwort

1

Es gibt einen Hive udf, um Tage auf das Hive-Datum zu subtrahierenhttps: //cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions, Sie haben zwei Optionen, um Ihr Datum in das folgende Format umzuwandeln, um das zu verwenden UDF direkt

yyyy-MM-dd 

oder Sie können Ihr aktuelles Datum umwandeln zu und das UDF gilt, zum Beispiel

date_sub(from_unixtime(unix_timestamp('12/03/2010' , 'dd/MM/yyyy')), 10) -- subs 10 days 

ich hoffe es hilft, grüße!

1

(Datum Argument)

hive> select date_sub(date '2016-12-01',10); 
OK 
2016-11-21 

oder

(String-Argument)

hive> select date_sub('2016-12-01',10); 
OK 
2016-11-21 

DATE_SUB (Datum/Zeitstempel/string startdate, Tinyint/Smallint/int Tage)

Subtrahiert eine Anzahl von Tagen bis zum Startdatum: date_sub ('2008-12-31', 1) = '2008-12-30'. Vor Hive 2.1.0 (HIVE-13248) war der Rückgabetyp eine -Zeichenfolge, da beim Erstellen der Methode kein Datumstyp vorhanden war.

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

Verwandte Themen