Wie bekomme ich current_date - 1
day in sparksql, genau wie cur_date()-1
in mysql.
Mit den Rechenfunktionen können Sie arithmetische Operationen für Spalten ausführen, die Datumsangaben enthalten.
Sie können beispielsweise die Differenz zwischen zwei Datumsangaben berechnen, einem Datum Tage hinzufügen oder Tage von einem Datum abziehen. Die integrierten Datumsberechnungsfunktionen umfassen datediff
, date_add
, date_sub
, add_months
, last_day
, next_day
und months_between
.
Was wir brauchen, ist von oben
date_sub (Startdatum des Zeitstempels, int Tage), Zweck: Subtrahiert eine angegebene Anzahl von Tagen von einem TIMESTAMP-Wert. Das erste Argument kann eine Zeichenfolge sein. Dies ist wird automatisch in TIMESTAMP umgewandelt, wenn das erkannte Format als .__ verwendet wird. beschrieben in TIMESTAMP-Datentyp. Rückgabetyp: Zeitstempel
und wir haben
current_timestamp () Zweck: Alias für die now () - Funktion. Rückkehr Typ: Zeitstempel
sie können auswählen
date_sub(CAST(current_timestamp() as DATE), 1)
Siehe https://spark.Apache.org/docs/1.6.2/api/Java/org/Apache/spark/sql/functions.html
Sie können diese Aufgabe leicht ausführen, es gibt viele Methoden, die sich auf das Datum beziehen, und hier können Sie date_sub
verwenden.
Beispiel für Spark-REPL:
scala> spark.sql("select date_sub(current_timestamp(), 1)").show
+----------------------------------------------+
|date_sub(CAST(current_timestamp() AS DATE), 1)|
+----------------------------------------------+
| 2016-12-12|
+----------------------------------------------+
Du kannst es versuchen
date_add(current_date(), -1)
Ich weiß es auch nicht, aber ich habe es bei Google gefunden. Sie können dieses link auch als Referenz verwenden
Ja, die Funktion date_sub()
ist das richtige für die Frage. In der ausgewählten Antwort ist jedoch ein Fehler aufgetreten:
Rückgabetyp: Zeitstempel
Der Rückgabetyp sollte date
sein. Die Funktion date_sub () schneidet jeden hh:mm:ss
-Teil des Zeitstempels ab und gibt nur eine date
zurück.