Catégories :

Fonctions contextuelles (Général)

SYSDATE

Renvoie l’horodatage actuel du système, mais dans le fuseau horaire UTC.

Voir aussi :

CURRENT_TIMESTAMP

Syntaxe

SYSDATE()

Arguments

Aucun.

Renvoie

Renvoie l’horodatage actuel dans le fuseau horaire UTC.

Le type de données de la valeur renvoyée est TIMESTAMP_NTZ.

Notes sur l’utilisation

  • Malgré le nom, cela renvoie TIMESTAMP_NTZ, pas DATE. Pour contrôler le format de sortie, utilisez le paramètre de session TIMESTAMP_NTZ_OUTPUT_FORMAT .

  • Cette fonction est similaire à CURRENT_TIMESTAMP, sauf que :

    • Elle renvoie l’horodatage actuel dans le fuseau horaire UTC, tandis que CURRENT_TIMESTAMP renvoie l’horodatage dans le fuseau horaire local.

    • Sa valeur de retour est TIMESTAMP_NTZ, tandis que CURRENT_TIMESTAMP renvoie TIMESTAMP_LTZ.

    • Elle nécessite des parenthèses (SYSDATE()), tandis que CURRENT_TIMESTAMP peut être appelé sans parenthèses.

    • Elle ne prend pas en charge un paramètre pour spécifier la précision des secondes fractionnaires.

  • 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).

Exemples

Définissez le format de sortie de l’heure sur YYYY-MM-DD HH24:MI:SS.FF4, puis renvoyez SYSDATE et CURRENT_TIMESTAMP. Notez la différence dans le champ horaire en raison de la différence de fuseau horaire.

ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF4';
ALTER SESSION SET TIMESTAMP_LTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF4';

ALTER SESSION SET TIMEZONE = 'America/Los_Angeles';

SELECT SYSDATE(), CURRENT_TIMESTAMP();

+--------------------------+--------------------------+
| SYSDATE()                | CURRENT_TIMESTAMP()      |
|--------------------------+--------------------------|
| 2019-12-23 08:00:00.1230 | 2019-12-23 00:00:00.1230 |
+--------------------------+--------------------------+