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

Dieses optionale Argument gibt die Genauigkeit an, mit der die Uhrzeit gemeldet werden soll. Bei einem Wert von 3 werden beispielsweise 3 Nachkommastellen verwendet, d. h. die Zeit wird mit einer Genauigkeit von Millisekunden angegeben.

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 beträgt die Genauigkeit meist höchstens etwa Millisekunden (3 Stellen).

Bemerkung

  • Sekundenbruchteile werden nur angezeigt, wenn sie explizit im Parameter TIME_OUTPUT_FORMAT für die Sitzung festgelegt worden sind, z. B. '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 Servern (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 |
+-------------------------------+