Kategorien:

Kontextfunktionen (Allgemein)

CURRENT_TIMESTAMP

Gibt den aktuellen Zeitstempel für das System zurück.

Aliasse:

LOCALTIMESTAMP, GETDATE, SYSTIMESTAMP

Syntax

CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )

CURRENT_TIMESTAMP

Argumente

Genauigkeit_Sekunden

This optional argument indicates the precision with which to report the time. For example, a value of 3 says to use 3 digits after the decimal point (i.e. to specify the time with a precision of milliseconds).

Die Standardgenauigkeit ist 9 (Nanosekunden).

Gültige Werte liegen zwischen 0 und 9. Die meisten Plattformen unterstützen jedoch keine echte Nanosekundengenauigkeit. Die Genauigkeit, die Sie erhalten, ist möglicherweise geringer als die von Ihnen angegebene Genauigkeit. In der Praxis liegt die Genauigkeit meist höchstens im Millisekundenbereich (3 Stellen).

Bemerkung

  • Fractional seconds are only displayed if they have been explicitly set in the TIME_OUTPUT_FORMAT parameter for the session (e.g. 'HH24:MI:SS.FF').

Rückgabewerte

Gibt den aktuellen Zeitstempel in der lokalen Zeitzone zurück.

Nutzungshinweise

  • Die Einstellung des Sitzungsparameters TIMEZONE wirkt sich auf den Rückgabewert aus.

  • Die Einstellung des Parameters TIMESTAMP_TYPE_MAPPING wirkt sich nicht auf den Rückgabewert aus.

  • Zur Erfüllung der ANSI-Standards kann diese Funktion ohne Klammern aufgerufen werden.

  • Verwenden Sie den zurückgegebenen Wert nicht für eine genaue zeitliche Reihenfolge zwischen gleichzeitigen Abfragen (die vom selben virtuellen Warehouse verarbeitet werden), da die Abfragen möglicherweise von verschiedenen Computeressourcen (im Warehouse) verarbeitet werden.

  • Die Aliasse SYSTIMESTAMP und GETDATE unterscheiden sich von CURRENT_TIMESTAMP in folgenden Punkten:

    • Sie unterstützen den Parameter Genauigkeit_Sekunden nicht.

    • Diese Funktionen können nur mit Klammern aufgerufen werden.

Beispiele

Setzen Sie das Zeitausgabeformat auf YYYY-MM-DD HH24:MI:SS.FF, und geben Sie dann den aktuellen Zeitstempel mit einer Genauigkeit der Sekundenbruchteile von zunächst 2, dann 4 und anschließend 9 (dem Standard) zurück:

ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';

SELECT CURRENT_TIMESTAMP(2);

+------------------------+
| CURRENT_TIMESTAMP(2)   |
|------------------------|
| 2017-04-26 22:37:22.83 |
+------------------------+

SELECT CURRENT_TIMESTAMP(4);

+--------------------------+
| CURRENT_TIMESTAMP(4)     |
|--------------------------|
| 2017-04-26 22:37:25.3530 |
+--------------------------+

SELECT CURRENT_TIMESTAMP;

+-------------------------------+
| CURRENT_TIMESTAMP             |
|-------------------------------|
| 2017-04-26 22:37:28.188000000 |
+-------------------------------+