Drucken      PDF-Version der Onlinehilfe öffnen


Vorheriges Thema

Nächstes Thema

Datums- und Uhrzeitfunktionen

Die Kalenderfunktionen für Datum und Uhrzeit bearbeiten Daten in Datentypen für Datum, Uhrzeit und Zeitstempel. (Der Datentyp Zeitstempel ist eine Kombination aus Datum und Uhrzeit.)

Alle Datumsfunktionen sind ISO 8601-konform. Dies betrifft insbesondere Funktionen wie Week_Of_Year und Week_Of_Quarter, wobei die erste Woche des Jahres die erste vollständige Woche mit einem Donnerstag ist. Detaillierte Information darüber, wie Datumsfunktionen berechnet werden, finden Sie im ISO 8601-Standard.

Current_Date

Gibt das aktuelle Datum zurück. Das Datum wird von dem System bestimmt, auf dem Oracle CRM On Demand Answers ausgeführt wird. Der Wert umfasst keine Uhrzeitkomponente.

Syntax:

CURRENT_DATE

Current_Time

Gibt die aktuelle Uhrzeit zurück. Die Uhrzeit wird von dem System bestimmt, auf dem Oracle CRM On Demand Answers ausgeführt wird. Der Wert umfasst keine Datumskomponente.

Hinweis: Diese Funktion ruft die aktuelle Zeit erst dann ab, wenn der Bericht ausgeführt wird. Bei Verwendung dieser Funktion für einen Analytics-Themenbereich wird der Bericht nicht gecacht. Leistungseinbußen können so vermieden werden.

Syntax:

CURRENT_TIME (n)

wobei:

n

eine Ganzzahl ist, die die Anzahl der Dezimalstellen darstellt, mit denen der Sekundenbruchteil angezeigt werden soll. Das Argument ist optional; die Funktion gibt die Standardgenauigkeit zurück, wenn kein Argument angegeben ist.

Current_TimeStamp

Gibt den aktuellen Datums-/Zeitstempel zurück. Der Zeitstempel wird aus dem System gelesen, auf dem Oracle CRM On Demand Answers ausgeführt wird.

Hinweis: Diese Funktion ruft die aktuelle Zeit erst dann ab, wenn der Bericht ausgeführt wird. Bei Verwendung dieser Funktion für einen Analytics-Themenbereich wird der Bericht nicht gecacht. Leistungseinbußen können so vermieden werden.

Syntax:

CURRENT_TIMESTAMP (n)

wobei:

n

eine Ganzzahl ist, die die Anzahl der Dezimalstellen darstellt, mit denen der Sekundenbruchteil angezeigt werden soll. Das Argument ist optional; die Funktion gibt die Standardgenauigkeit zurück, wenn kein Argument angegeben ist.

Day_Of_Quarter

Gibt eine Zahl (zwischen 1 und 92) zurück, die dem Tag des Quartals für das angegebene Datum entspricht.

Syntax:

DAY_OF_QUARTER (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

DayName

Gibt den Namen des Wochentags (auf Englisch) für ein angegebenes Datum zurück.

Syntax:

DAYNAME (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

DayOfMonth

Gibt die Zahl zurück, die dem Tag des Monats für ein angegebenes Datum entspricht.

Syntax:

DAYOFMONTH (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

DayOfWeek

Gibt eine Zahl zwischen 1 und 7 zurück, die dem Wochentag für ein angegebenes Datum entspricht. Die Zahl 1 entspricht Sonntag und die Zahl 7 entspricht Samstag.

Syntax:

DAYOFWEEK (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

DayOfYear

Gibt die Zahl (zwischen 1 und 366) zurück, die dem Tag des Jahres für ein angegebenes Datum entspricht.

Syntax:

DAYOFYEAR (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Hour

Gibt eine Zahl (zwischen 0 und 23) zurück, die der Stunde für eine angegebene Zeit entspricht. 0 entspricht beispielsweise 0 Uhr, und 23 entspricht 23 Uhr.

Syntax:

HOUR (time_expression)

wobei:

time_expression

ein beliebiger Ausdruck ist, der eine Uhrzeit ergibt.

Minute

Gibt eine Zahl (zwischen 0 und 59) zurück, die der Minute für eine angegebene Zeit entspricht.

Syntax:

MINUTE (time_expression)

wobei:

time_expression

ein beliebiger Ausdruck ist, der eine Uhrzeit ergibt.

Month

Gibt eine Zahl (zwischen 1 und 12) zurück, die dem Monat für ein angegebenes Datum entspricht.

Syntax:

MONTH (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Month_Of_Quarter

Gibt die Zahl (zwischen 1 und 3) zurück, die dem Monat im Quartal für das angegebene Datum entspricht.

Syntax:

MONTH_OF_QUARTER (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

MonthName

Gibt den Namen des Monats (auf Englisch) für ein angegebenes Datum zurück.

Syntax:

MONTHNAME (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Now

Gibt den aktuellen Zeitstempel zurück. Die NOW-Funktion entspricht der CURRENT_TIMESTAMP-Funktion.

Hinweis: Diese Funktion ruft die aktuelle Zeit erst dann ab, wenn der Bericht ausgeführt wird. Bei Verwendung dieser Funktion für einen Analytics-Themenbereich wird der Bericht nicht gecacht. Leistungseinbußen können so vermieden werden.

Syntax:

NOW ()

Quarter_Of_Year

Gibt die Zahl (zwischen 1 und 4) zurück, die dem Quartal des Jahres für ein angegebenes Datum entspricht.

Syntax:

QUARTER_OF_YEAR (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Second

Gibt die Zahl (zwischen 0 und 59) zurück, die der Sekunde für eine angegebene Zeit entspricht.

Syntax:

SECOND (time_expression)

wobei:

time_expression

ein beliebiger Ausdruck ist, der eine Uhrzeit ergibt.

TimestampAdd

Die TimestampAdd-Funktion fügt einem angegebenen Zeitstempel eine angegebene Anzahl von Intervallen hinzu. Es wird ein einzelner Zeitstempel zurückgegeben.

Syntax:

TimestampAdd (interval, integer_expression, timestamp_expression)

wobei:

interval

das angegebene Intervall ist. Gültige Werte sind:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

integer_expression

ein beliebiger Ausdruck ist, der eine Ganzzahl ergibt. Dies ist die Anzahl der hinzuzufügenden Intervalle.

timestamp_expression

Der als Grundlage der Berechnung verwendete Zeitstempel.

Ein an diese Funktion übergebener leerer Ganzzahlausdruck oder leerer Zeitstempelausdruck führt zu einem leeren Rückgabewert.

Im einfachsten Szenario fügt diese Funktion lediglich entsprechend dem Intervall der jeweiligen Zeitstempelkomponente den angegebenen Ganzzahlwert (integer_expression) hinzu. Das Hinzufügen einer Woche entspricht dem Hinzufügen von sieben Tagen, und das Hinzufügen eines Quartals entspricht dem Hinzufügen von drei Monaten. Bei einem negativen Ganzzahlwert wird subtrahiert (zeitlich zurückgegangen).

Ein überlauf der jeweiligen Komponente (etwa mehr als 60 Sekunden, 24 Stunden, zwölf Monate usw.) macht es erforderlich, der nächsten Komponente die entsprechende Menge hinzuzufügen. Wenn beispielsweise der Tageskomponente eines Zeitstempels etwas hinzugefügt wird, geht diese Funktion von einem überlauf aus und berücksichtigt die Anzahl der Tage in einem bestimmten Monat (einschließlich Schalttagen, wenn Februar 29 Tage hat).

Wenn der Monatskomponente eines Zeitstempels etwas hinzugefügt wird, prüft diese Funktion, ob der entstandene Zeitstempel ausreichend Tage für die Tageskomponente aufweist. Wenn beispielsweise 2000-05-31 ein Monat hinzugefügt wird, lautet das Ergebnis nicht 2000-06-31, da der Juni keine 31 Tage hat. Durch diese Funktion wird die Tageskomponente des letzten Tages des Monats verringert, in diesem Beispiel auf 2000-06-30.

Ein ähnliches Problem tritt auf, wenn einer Jahreskomponente eines Zeitstempels mit der Monatskomponente Februar und der Tageskomponente 29 (also dem letzten Februartag in einem Schaltjahr) Zeit hinzugefügt wird. Wenn der entstandene Zeitstempel nicht in ein Schaltjahr fällt, verringert die Funktion die Tageskomponente auf 28.

Es folgen einige Beispiele für die TimestampAdd-Funktion:

Das folgende Codebeispiel fragt den gebildeten Zeitstempel ab, wenn 3 Tage zu 2000-02-27 14:30:00 hinzugefügt werden. Da der Februar 2000 ein Schaltjahr ist, wird ein einziger Zeitstempel 2000-03-01 14:30:00 zurückgegeben.

TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’)

Das folgende Codebeispiel fragt den gebildeten Zeitstempel ab, wenn 7 Monate zu 1999-07-31 0:0:0 hinzugefügt werden. Hierdurch wird ein einziger Zeitstempel 2000-02-29 00:00:00 gebildet. Beachten Sie die auf 29 verringerte Tageskomponente, da Februar ein kürzerer Monat ist.

TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’)

Das folgende Codebeispiel fragt den gebildeten Zeitstempel ab, wenn 25 Minuten zu 2000-07-31 23:35:00 hinzugefügt werden. Hierdurch wird ein einziger Zeitstempel 2000-08-01 00:00:00 gebildet. Beachten Sie, wie der überlauf bis zur Monatskomponente weitergeführt wird.

TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’)

TimeStampDiff

Die TimestampDiff-Funktion gibt die Gesamtzahl der angegebenen Intervalle zwischen zwei Zeitstempeln zurück.

Syntax:

TimestampDiff (interval, timestamp_expression1, timestamp_expression2)

wobei:

interval

das angegebene Intervall ist. Gültige Werte sind:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

timestamp_expression1

der Zeitstempel ist, der vom zweiten Zeitstempel abgezogen werden soll.

timestamp_expression2

der zweite Zeitstempel ist. timestamp_expression1 wird von diesem Zeitstempel abgezogen, um die Differenz zu ermitteln.

Ein an diese Funktion übergebener leerer Zeitstempelausdruck führt zu einem leeren Rückgabewert.

Diese Funktion bestimmt zunächst die Zeitstempelkomponente, die dem angegebenen Intervallparameter entspricht. Beispielsweise entspricht SQL_TSI_DAY der Tageskomponente und SQL_TSI_MONTH der Monatskomponente.

Die Funktion zieht dann die Komponenten höherer Ordnung beider Zeitstempel heran, um die Gesamtzahl der Intervalle für jeden Zeitstempel zu berechnen. Wenn das angegebene Intervall beispielsweise der Monatskomponente entspricht, berechnet die Funktion die Gesamtzahl der Monate für jeden Zeitstempel, indem sie die Monatskomponente und zwölfmal die Jahreskomponente hinzufügt.

Die Funktion zieht schließlich die Gesamtzahl der Intervalle von der Gesamtzahl der Intervalle des zweiten Zeitstempels ab.

Bei der Berechnung des Unterschieds in Tagen schneidet die Funktion die Zeitwerte aus beiden Timestamp-Ausdrücken ab und subtrahiert dann die Datumswerte.

Bei der Berechnung des Unterschieds in Wochen berechnet die Funktion den Unterschied in Tagen und dividiert vor der Rundung durch sieben.

Bei der Berechnung des Unterschieds in Quartalen berechnet die Funktion den Unterschied in Monaten und dividiert vor der Rundung durch drei.

Bei der Berechnung des Unterschieds in Jahren berechnet die Funktion den Unterschied in Monaten und dividiert vor der Rundung durch zwölf.

TimestampDiff-Funktion und Ergebnisbeispiel

Das folgende Codebeispiel fragt einen Unterschied in Tagen zwischen den Zeitstempeln 1998-07-31 23:35:00 und 2000-04-01 14:24:00 ab. Es wird das Ergebnis 610 zurückgegeben. Beachten Sie, dass das Schaltjahr 2000 zu einem zusätzlichen Tag führt.

TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’)

Week_Of_Quarter

Gibt eine Zahl (zwischen 1 und 13) zurück, die der Woche des Quartals für das angegebene Datum entspricht.

Syntax:

WEEK_OF_QUARTER (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Week_Of_Year

Gibt eine Zahl (zwischen 1 und 53) zurück, die der Woche des Jahres für das angegebenes Datum entspricht.

Syntax:

WEEK_OF_YEAR (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Jahr

Gibt das Jahr für das angegebene Datum zurück.

Syntax:

YEAR (date_expression)

wobei:

date_expression

ein beliebiger Ausdruck ist, der ein Datum ergibt.

Beispiele:

YEAR (CURRENT_DATE)


Veröffentlicht Oktober 2016 Copyright © 2005, 2016, Oracle. Alle Rechte vorbehalten. Legal Notices.