- Kategorien:
 
TIMESTAMP_FROM_PARTS¶
Erstellt einen Zeitstempel aus einzelnen numerischen Komponenten. Wenn keine Zeitzone aktiv ist, kann mithilfe der Funktion aus einem Datums- und einem Zeitausdruck ein Zeitstempel erstellt werden.
- Aliasse:
 TIMESTAMPFROMPARTS
- Varianten (und Aliasse):
 TIMESTAMP_LTZ_FROM_PARTS , TIMESTAMPLTZFROMPARTS
TIMESTAMP_NTZ_FROM_PARTS , TIMESTAMPNTZFROMPARTS
TIMESTAMP_TZ_FROM_PARTS , TIMESTAMPTZFROMPARTS
Syntax¶
TIMESTAMP_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond> ] [, <time_zone> ] )
TIMESTAMP_FROM_PARTS( <date_expr>, <time_expr> )
TIMESTAMP_LTZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] )
TIMESTAMP_NTZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] )
TIMESTAMP_NTZ_FROM_PARTS( <date_expr>, <time_expr> )
TIMESTAMP_TZ_FROM_PARTS( <year>, <month>, <day>, <hour>, <minute>, <second> [, <nanosecond>] [, <time_zone>] )
Bemerkung
Die Datums- und Zeitausdrucksversion von TIMESTAMP_FROM_PARTS ist nur gültig, wenn der Sitzungsparameter TIMESTAMP_TYPE_MAPPING auf TIMESTAMP_NTZ gesetzt ist.
Argumente¶
Benötigt:
yearEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Jahr verwendet wird.
monthEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Monat verwendet wird, wobei Januar als
1und Dezember als12dargestellt werden.dayEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Tag verwendet wird, normalerweise im Bereich
1-31.hourEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Stunde verwendet wird, normalerweise im Bereich
0-23.minuteEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Minute verwendet wird, normalerweise im Bereich
0-59.secondEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Sekunde verwendet wird, normalerweise im Bereich
0-59.date_expr,time_exprGeben die Datums- und Zeitausdrücke an, die zum Erstellen eines Zeitstempels verwendet werden sollen, wobei
date_exprJahr, Monat und Tag undtime_exprStunde, Minute, Sekunde und Nanosekunden innerhalb des Tags für den Zeitstempel angeben. Gilt nur für:TIMESTAMP_FROM_PARTS (wenn der Sitzungsparameter TIMESTAMP_TYPE_MAPPING auf TIMESTAMP_NTZ gesetzt ist)
TIMESTAMP_NTZ_FROM_PARTS
Optional:
nanosecondsEin ganzzahliger Ausdruck, der beim Erstellen eines Zeitstempels als Nanosekunde verwendet wird, normalerweise im Bereich
0-999999999.time_zoneEin Zeichenfolgenausdruck, der beim Erstellen eines Zeitstempels als Zeitzone verwendet wird (z. B.
America/Los_Angeles). Gilt nur für:TIMESTAMP_FROM_PARTS (wenn der Sitzungsparameter TIMESTAMP_TYPE_MAPPING auf TIMESTAMP_TZ gesetzt ist)
TIMESTAMP_TZ_FROM_PARTS
Nutzungshinweise¶
TIMESTAMP_FROM_PARTS-Varianten werden normalerweise genutzt, um Werte in den „normalen“ Wertebereichen zu verarbeiten (z. B. Monate
1-12, Tage1-31, Stunden0-23usw.); sie können jedoch auch Werte außerhalb dieser Bereiche verarbeiten. Dies ermöglicht die Auswahl des N-ten Tages in einem Jahr oder der N-ten Sekunde an einem Tag, was zur Vereinfachung einiger Berechnungen beiträgt.TIMESTAMP_FROM_PARTS entspricht der durch den Sitzungsparameter TIMESTAMP_TYPE_MAPPING angegebenen Variante (Standardwert ist TIMESTAMP_NTZ).
Beispiele¶
Festlegen der Sitzungsvariablen, die das Ausgabeformat und die Zeitzone steuern:
ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'; ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'; ALTER SESSION SET TIMEZONE='America/New_York';
Verwenden von TIMESTAMP_LTZ_FROM_PARTS:
SELECT TIMESTAMP_LTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00); +--------------------------------------------------+ | TIMESTAMP_LTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00) | |--------------------------------------------------| | 2013-04-05 12:00:00.000000000 -0400 | +--------------------------------------------------+
Verwenden von TIMESTAMP_NTZ_FROM_PARTS:
select timestamp_ntz_from_parts(2013, 4, 5, 12, 00, 00, 987654321); +-------------------------------------------------------------+ | TIMESTAMP_NTZ_FROM_PARTS(2013, 4, 5, 12, 00, 00, 987654321) | |-------------------------------------------------------------| | 2013-04-05 12:00:00.987654321 | +-------------------------------------------------------------+
Verwenden von TIMESTAMP_NTZ_FROM_PARTS mit einem Datum und einer Uhrzeit anstatt mit Jahr, Monat, Tag, Stunde usw.:
select timestamp_ntz_from_parts(to_date('2013-04-05'), to_time('12:00:00')); +----------------------------------------------------------------------+ | TIMESTAMP_NTZ_FROM_PARTS(TO_DATE('2013-04-05'), TO_TIME('12:00:00')) | |----------------------------------------------------------------------| | 2013-04-05 12:00:00.000000000 | +----------------------------------------------------------------------+
Verwenden von TIMESTAMP_TZ_FROM_PARTS mit einer Standardzeitzone der Sitzung (‚America/New_York‘/-0400):
select timestamp_tz_from_parts(2013, 4, 5, 12, 00, 00); +-------------------------------------------------+ | TIMESTAMP_TZ_FROM_PARTS(2013, 4, 5, 12, 00, 00) | |-------------------------------------------------| | 2013-04-05 12:00:00.000000000 -0400 | +-------------------------------------------------+
Verwenden von TIMESTAMP_TZ_FROM_PARTS mit einer bestimmten Zeitzone (‚America/Los_Angeles‘/-0700). Beachten Sie auch die Verwendung von 0 als Nanosekunden-Argument:
select timestamp_tz_from_parts(2013, 4, 5, 12, 00, 00, 0, 'America/Los_Angeles'); +---------------------------------------------------------------------------+ | TIMESTAMP_TZ_FROM_PARTS(2013, 4, 5, 12, 00, 00, 0, 'AMERICA/LOS_ANGELES') | |---------------------------------------------------------------------------| | 2013-04-05 12:00:00.000000000 -0700 | +---------------------------------------------------------------------------+
Verarbeiten von Werten, die außerhalb normaler Bereiche liegen (mit Abzug von 1 Stunde durch Angabe von -3600 Sekunden):
select timestamp_from_parts(2013, 4, 5, 12, 0, -3600); +------------------------------------------------+ | TIMESTAMP_FROM_PARTS(2013, 4, 5, 12, 0, -3600) | |------------------------------------------------| | 2013-04-05 11:00:00.000000000 | +------------------------------------------------+