CURRENT_TIMESTAMP |
TimeStamp courant |
|---|---|
| Oracle Database SQL | Oracle 9i ou supérieure |
Syntaxe
| CURRENT_TIMESTAMP |
| CURRENT_TIMESTAMP(precision) |
Paramètres
| Nom | Description |
|---|---|
| precision | Ce paramètre permet d'indiquer le nombre de chiffres pour la précision des fractions de seconde dans le résultat du TIMESTAMP. Il peut aller de 0 à 9, où CURRENT_TIMESTAMP(3) retourne par exemple les millisecondes. Si ce paramètre est omis, la précision par défaut (souvent 6) est utilisée. |
Description
Cette fonction retourne la date et l'heure courante en tenant compte du fuseau horaire de la session SQL et des paramètres d'«ALTER SESSION».
Remarques
- Retourne un type enrichi : TIMESTAMP WITH TIME ZONE : La fonction CURRENT_TIMESTAMP retourne un type de données complet incluant la date, l'heure, les fractions de seconde, et le fuseau horaire actif de la session. Ce niveau de précision dépasse celui de CURRENT_DATE ou SYSDATE.
- Dépend du fuseau horaire de la session : La valeur retournée par CURRENT_TIMESTAMP est déterminée par le fuseau horaire de la session SQL. Ce fuseau peut être défini avec une commande comme ALTER SESSION SET TIME_ZONE = '-05:00'.
- Diffère de SYSTIMESTAMP : Alors que SYSTIMESTAMP utilise le fuseau horaire du système serveur, CURRENT_TIMESTAMP s'adapte à la session en cours. Cela permet d'obtenir des horodatages contextualisés par utilisateur.
- Permet une précision à la fraction de seconde : Contrairement à CURRENT_DATE, CURRENT_TIMESTAMP peut afficher les fractions de seconde (par défaut jusqu'à 6 chiffres), ce qui le rend utile dans les systèmes où la précision temporelle est cruciale (journaux, synchronisations,...).
- Utile dans les applications multi-fuseaux horaires : Dans les applications avec des utilisateurs répartis mondialement, CURRENT_TIMESTAMP permet de fournir des horodatages locaux sans devoir convertir manuellement les heures selon les fuseaux de chaque utilisateur.
- Aucune parenthèse nécessaire : Comme SYSDATE et CURRENT_DATE, CURRENT_TIMESTAMP est une fonction sans parenthèses. Elle s'utilise seule : SELECT CURRENT_TIMESTAMP FROM dual;.
- Compatible avec les conversions temporelles : Le résultat peut être facilement converti vers d'autres formats ou types temporels via des fonctions comme CAST, TO_CHAR, ou FROM_TZ, permettant ainsi des affichages formatés ou des comparaisons précises.
- Supporte un niveau de précision personnalisable : On peut spécifier la précision des fractions de secondes en ajoutant un paramètre : CURRENT_TIMESTAMP(3) retournera 3 chiffres après la seconde, tandis que CURRENT_TIMESTAMP(9) poussera jusqu'à la nanoseconde.
- Idéal pour les journaux d'audit utilisateur : Dans les systèmes où les événements doivent être enregistrés avec l'heure locale de l'utilisateur (exemple : authentifications, validations, changements), CURRENT_TIMESTAMP est préférable à SYSDATE.
- Peut produire des résultats différents selon les sessions : Deux utilisateurs connectés au même moment, mais depuis des fuseaux horaires différents, obtiendront des valeurs distinctes avec CURRENT_TIMESTAMP. Cette particularité est à prendre en compte dans les calculs collaboratifs ou globaux.
- Introduite avec Oracle 9i : La fonction CURRENT_TIMESTAMP a été introduite avec Oracle 9i, dans le cadre de l'ajout du support des types temporels enrichis et des fuseaux horaires session-based, devenant un standard depuis cette version.
- Peut être utilisée dans les clauses DEFAULT : On peut utiliser CURRENT_TIMESTAMP comme valeur par défaut dans les colonnes de type TIMESTAMP WITH TIME ZONE, ce qui est utile pour horodater automatiquement les enregistrements selon le contexte de session.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015