Catégories :

Fonctions contextuelles (général)

CURRENT_TIMESTAMP

Renvoie l’horodatage actuel du système.

Alias :

LOCALTIMESTAMP , GETDATE , SYSTIMESTAMP

Syntaxe

CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )

CURRENT_TIMESTAMP

Arguments

précision_sec_fract

Cet argument facultatif indique la précision avec laquelle indiquer l’heure. Par exemple, une valeur de 3 indique qu’il faut utiliser 3 chiffres après le point décimal. Autrement dit, pour spécifier l’heure avec une précision à la milliseconde près.

La précision par défaut est 9 (nanosecondes).

Les valeurs valides vont de 0 à 9. Cependant, la plupart des plates-formes ne prennent pas réellement en charge la précision en nanosecondes. La précision obtenue peut être inférieure à celle que vous spécifiez. En pratique, la précision est généralement à la milliseconde près (3 chiffres).

Note

  • Les secondes fractionnelles ne sont affichées que si elles ont été définies explicitement dans le paramètre TIME_OUTPUT_FORMAT de la session, par exemple 'HH24:MI:SS.FF'.

Renvoie

Renvoie l’horodatage actuel dans le fuseau horaire local.

Notes sur l’utilisation

  • La configuration du paramètre de session TIMEZONE affecte la valeur de retour.

  • Le réglage du paramètre TIMESTAMP_TYPE_MAPPING n’affecte pas la valeur de retour.

  • Pour respecter les normes ANSI, cette fonction peut être appelée sans parenthèses.

  • N’utilisez pas la valeur renvoyée pour un ordre chronologique précis entre les requêtes simultanées (traitées par le même entrepôt virtuel), car les requêtes peuvent être traitées par des serveurs différents (dans l’entrepôt).

  • Les alias SYSTIMESTAMP et GETDATE diffèrent de CURRENT_TIMESTAMP des manières suivantes :

    • Ils ne prennent pas en charge le paramètre précision_sec_fract.

    • Ces fonctions ne peuvent pas être appelées sans parenthèses.

Exemples

Définissez le format de sortie de l’heure sur YYYY-MM-DD HH24:MI:SS.FF, puis renvoyez l’horodatage actuel avec une précision fractionnelle en secondes d’abord défini sur 2, 4, puis sur la valeur par défaut (9) :

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 |
+-------------------------------+