LOCALTIMESTAMP |
Temps local |
|---|---|
| Oracle Database SQL | Oracle 8i ou supérieure |
Syntaxe
| localtimestamp |
Description
Cette fonction retourne le fuseau horaire de la session SQL et des paramètres d'«ALTER SESSION».
Remarques
- LOCALTIMESTAMP retourne l'heure actuelle sans information explicite de fuseau horaire. Cela signifie que le type de données retourné est simplement TIMESTAMP, contrairement à CURRENT_TIMESTAMP retournant un TIMESTAMP WITH TIME ZONE.
- La valeur retournée par LOCALTIMESTAMP dépend de la session. Le fuseau horaire utilisé est celui défini dans la session utilisateur (par exemple via ALTER SESSION SET TIME_ZONE = '+02:00'), ce qui permet d'adapter dynamiquement l'heure aux besoins de l'utilisateur.
- Cette fonction est utile dans les environnements multi-utilisateurs internationaux. Chaque session pouvant avoir un fuseau horaire différent, LOCALTIMESTAMP garantit que les opérations sensibles au temps soient correctement localisées selon l'utilisateur.
- LOCALTIMESTAMP est typiquement utilisé dans les colonnes d'audit. Lors de l'insertion de lignes dans des tables, elle permet d'enregistrer l'horodatage exact selon le fuseau de l'utilisateur, sans interférence d'un fuseau global ou système.
- Le format de sortie de LOCALTIMESTAMP inclut les fractions de secondes. Contrairement à la fonction SYSDATE, elle retourne une précision jusqu'aux millisecondes ou plus, selon la configuration du système.
- Elle ne dépend pas de l'horloge système du serveur. Puisqu'elle prend en compte le fuseau de la session, deux utilisateurs peuvent obtenir des résultats différents en même temps si leurs fuseaux horaires sont différents.
- On peut convertir le résultat de LOCALTIMESTAMP dans d'autres types temporels. Par exemple, il est possible de le convertir en DATE via CAST(LOCALTIMESTAMP AS DATE) ou de l'utiliser dans des fonctions de calculs de temps (ADD_MONTHS, INTERVAL,...).
- Elle est conforme à la norme SQL:1999. LOCALTIMESTAMP a été introduite pour suivre les standards modernes de manipulation du temps, ce qui permet plus de portabilité entre systèmes SGBD supportant SQL standard.
- La fonction ne prend aucun argument. Contrairement à certaines fonctions temporelles, LOCALTIMESTAMP ne nécessite pas d'expressions ou de paramètres ; elle est appelée simplement comme LOCALTIMESTAMP.
- Elle est utile pour comparer avec des colonnes TIMESTAMP. Lorsque vous avez des colonnes de type TIMESTAMP sans zone horaire, LOCALTIMESTAMP permet des comparaisons exactes, sans conversion implicite comme avec CURRENT_TIMESTAMP.
- Utilisée avec des vues matérialisées ou journaux de changement, elle facilite la journalisation. Son indépendance vis-à-vis du fuseau système permet de consigner des événements du point de vue utilisateur, utile dans des contextes réglementaires ou de conformité.
- Lors d'un appel successif dans une même requête, elle retourne la même valeur. Tout comme SYSDATE, LOCALTIMESTAMP est évaluée une seule fois par requête SQL, ce qui garantit la cohérence dans les calculs temporels multiples au sein d'une même instruction.
Voir également
Langage de programmation - Oracle Database SQL - Référence de fonctions - «CURRENT_TIMESTAMP»
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015