IBM PureData System for Analytics, Version 7.1

Datums-/Uhrzeitfunktionen

In der folgenden Tabelle werden die Datums-/Uhrzeitfunktionen beschrieben.
Tabelle 1. Datums-/Uhrzeitfunktionen
Typ Beschreibung
add_months(Datum,n) Gibt das Datum zurück, das Datum entspricht, sowie die Anzahl Monate, die durch die Ganzzahl n angegeben werden. Wenn das Ergebnisdatum mehr Tage hätte, als im Ergebnismonat verfügbar sind, ist das Ergebnis der letzte Tag des Monats. Andernfalls hat das Ergebnisdatum dieselbe Tageskomponente wie Datum. Beispiel:

add_months('March 03, 2015',2) gibt '2015-05-03 00:00:00' zurück.
add_months('March 31, 2015',-1) gibt '2015-02-28 00:00:00' zurück.

age(Zeitmarke,Zeitmarke)
age(Zeitmarke)

Gibt das Intervall zwischen zwei Zeitmarken zurück. Der zurückgegebene Wert hat dieselbe Genauigkeit wie die genaueste Argument. Beispiel:
  • select age('10-22-2003', '7-6-2002') gibt '1 year 3 mons 16 days' zurück.
  • select age('10-22-2003 09:46:07.325', '7-6-2002') gibt '1 year 3 mons 16 days 09:46:07.325' zurück.
Wenn Sie ein einzelnes Argument angeben, gibt die Funktion das Intervall zwischen der aktuellen Uhrzeit und der angegebenen Zeitmarke zurück. Dies ist äquivalent zu age(CURRENT_TIMESTAMP, Zeitmarke).

Die Intervallunterstützung von IBM® Netezza SQL weicht vom Standard ab.

date_part(Einheiten,Spalte) Extrahiert das durch Einheiten dargestellte Unterfeld aus dem Datums-/Uhrzeitwert, Intervall oder Zeitraum, der für Spalte angegeben ist. Diese Funktion ist äquivalent zu extract().
date_trunc(Einheiten,Datum) Schneidet das für Datum angegebene Datum mit der durch Einheiten angegebenen Genauigkeit ab.
extract(Einheiten FROM Spalte) Extrahiert das durch Einheiten dargestellte Unterfeld aus dem Datums-/Uhrzeitwert, Intervall oder Zeitraum, der für Spalte angegeben ist. Diese Funktion ist äquivalent zu date_part().
last_day(Datum) Gibt den letzten Tag des Monats des angegebenen Datums zurück.
months_between(Datum1,Datum2) Gibt die Anzahl Monate zwischen den Datumsangaben Datum1 und Datum2 zurück:
  • Wenn Datum1 nach Datum2 liegt, ist das Ergebnis positiv.
  • Wenn Datum1 vor Datum2 liegt, ist das Ergebnis negativ.
  • Wenn Datum1 und Datum2 dieselben Tage des Monats oder die letzten Tage der entsprechenden Monate sind, ist das Ergebnis eine Ganzzahl.
  • Andernfalls enthält das Ergebnis einen Bruchteil auf der Basis eines Monats mit 31 Tagen.
Beispiel:
  • select months_between('2015-05-23', '2015-04-23') gibt 1 zurück.
  • select months_between('2015-02-28', '2015-05-31') gibt -3 zurück.
  • select months_between('2015-05-15', '2014-05-05') gibt 12.322580645 (12 vollständige Monate plus 10 zusätzliche Tage; 10/31=0.322580645) zurück.
next_day(Datum,Wochentag) Gibt das Datum des Wochentags zurück, der nach einem bestimmten Datum kommt. Das Argument Datum kann ein Datum oder eine Zeitmarke sein. Das Format des zurückgegebenen Werts entspricht dem Format des Arguments Datum.
Das Argument Wochentag ist ein Zeichenfolgeliteral von mindestens drei Zeichen, die den Wochentag angeben ('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'), für den das Datum zurückgegeben werden soll. Es muss in Hochkommas eingeschlossen sein und kann Groß- oder Kleinbuchstaben enthalten. Nach dem dritten Zeichen angegebene Zeichen werden ignoriert. Beispielsweise war der erste Samstag nach Mittwoch, dem 25. Dezember 2013, am 28. Dezember 2013:

select next_day('12-25-2013','Saturday') gibt '2013-12-28' zurück.

now() Diese Funktion entspricht CURRENT_TIMESTAMP. Weitere Informationen finden Sie in Konvertierungsfunktionen.
overlaps(a,b,c,d) Ermittelt, ob sich zwei Zeitintervalle überschneiden. Für die Datentypen gilt Folgendes:
  • Die Parameter a und c müssen den Datentyp TIME oder TIMESTAMP haben, der Datentyp muss jedoch für beide Parameter identisch sein.
  • Die Parameter b und d können den Datentyp TIME, TIME WITH TIME ZONE oder INTERVAL haben, der Datentyp muss jedoch für beide Parameter identisch sein.
Netezza SQL unterstützt das Standard-SQL-Prädikat für Überschneidungen.
duration_add(a,b) Gibt die Dauer zurück, die sich ergibt, wenn zwei Argumente (durch a und b dargestellt) addiert werden. Gültige Kombinationen von Argumentdatentypen werden in Tabelle 2 beschrieben.
duration_subtract(a,b) Gibt die Dauer zurück, die sich ergibt, wenn das zweite Argument (b) vom ersten Argument (a) subtrahiert wird. Gültige Kombinationen von Argumentdatentypen werden in Tabelle 3 beschrieben.
timeofday() Die Funktion ist die ausführliche Zeichenfolgeversion von CURRENT_TIMESTAMP. Beispiel: Mon 01 Dec 2014 16:12:05 EST. Das Format der Ausgabe wird von der verwendeten Konvertierungsfunktion bestimmt (siehe Konvertierungsfunktionen).
timezone(Zeitmarke Quellenzeitzone Zielzeitzone) Konvertiert den Eingabezeitmarkenwert in der Quellenzeitzone in eine Zeitzonenwert in der Zielzeitzone. Beispiel:
select TIMEZONE(timestamp '2000-07-04 17:00:00', 'America/New_York', 
'America/Los_Angeles');
      TIMEZONE
---------------------
 2000-07-04 14:00:00
(1 row)

Das System prüft und löst die angegebenen Zeitzonenwerte mithilfe der ICU-Bibliothek auf. Weitere Informationen zu programmgesteuerten IDs wie Canada/Newfoundland oder unformatierten Zeitzonenabweichungswerten wie GMT-03:30 zum zuverlässigen Angeben von Zeitzonen finden Sie unter http://userguide.icu-project.org/datetime/timezone. Wenn die Funktion die in der Abfrage angegebenen Zeitzonen nicht auflösen kann, schlägt die Abfrage mit der Nachricht ERROR: Time zone 'ungültige_Zeitzone' not recognized fehl.

Tabelle 2. Gültige Kombinationen von Datentypen für die Argumente der duration_add-Funktion
Datentyp des ersten Arguments Datentyp des zweiten Arguments Rückgabe
date numeric(8,0) date
time numeric(6,0) time
timestamp numeric(6,0) timestamp
numeric(8,0)
numeric(14,0)
numeric(15,1)
numeric(16,2)
numeric(17,3)
numeric(18,4)
numeric(19,5)
numeric(20,6)
Tabelle 3. Gültige Kombinationen von Datentypen für die Argumente der duration_subtract-Funktion
Datentyp des ersten Arguments Datentyp des zweiten Arguments Rückgabe
date date numeric(8,0)
numeric(8,0) date
time time numeric(6,0)
numeric(6,0) time
timestamp timestamp numeric(20,6)
numeric(6,0) timestamp
numeric(8,0)
numeric(14,0)
numeric(15,1)
numeric(16,2)
numeric(17,3)
numeric(18,4)
numeric(19,5)
numeric(20,6)
Für das zweite Argument oder den zurückgegebenen Wert der duration_add- oder duration_subtract-Funktion gilt Folgendes:
  • Der Typ numeric(6,0) stellt eine Dauer des Formats hhmmss dar, z. B. 030745 für drei Stunden, sieben Minuten und 45 Sekunden.
  • Der Typ numeric(8,0) stellt eine Dauer des Formats YYYYMMDD dar, z. B. 00020525 für zwei Jahre, fünf Monate und 25 Tage.
  • Andere numerische Werte enthalten 14-20 Ziffern:
    • Die ersten 8 Ziffern zeigen den Datumsabschnitt der Dauer im Format YYYYMMDD an.
    • Die nächsten 6 Ziffern zeigen den Zeitabschnitt der Dauer im Format hhmmss an.
    • Die nächsten 0-6 Ziffern zeigen einen Sekundenbruchteil an.
    Beispielsweise stellt die Dauer 00010521010521999::numeric(17,3) einen Zeitraum von einem Jahr, fünf Monaten, 21 Tagen, einer Stunde, fünf Minuten und 21,999 Sekunden dar.


Feedback | Copyright IBM Corporation 2014 | Letzte Aktualisierung: 2014-02-28