Problème :
Vous souhaitez obtenir l'heure actuelle dans une base de données PostgreSQL. Vous ne voulez pas le décalage du fuseau horaire.
Solution :
Nous utiliserons la fonction LOCALTIME
pour obtenir l'heure actuelle sans décalage de fuseau horaire.
SELECT LOCALTIME;
Voici le résultat de la requête :
22:15:51.987914
Discussion :
La fonction PostgreSQL LOCALTIME
renvoie l'heure actuelle sur la machine exécutant PostgreSQL. Il le renvoie sous la forme d'un type de données de temps dans le 'hh:mm:ss.nnnnnn '. Dans ce format :
- hh est une heure à 2 chiffres.
- mm est une minute à 2 chiffres.
- ss est une seconde à 2 chiffres.
- nnnnnn sont des fractions de seconde (de zéro à une précision de 6 chiffres).
Comme vous le remarquez, cette fonction n'a pas de parenthèses. Cependant, si vous souhaitez afficher l'heure avec une précision spécifique, utilisez des parenthèses avec un entier de 0 à 6 comme argument. Cela renverra l'heure avec le nombre souhaité de secondes fractionnaires. Par exemple, LOCALTIME(1)
désigne seulement une fraction de seconde (c'est-à-dire une place après la virgule); 2 renverra deux chiffres, etc. La valeur par défaut (sans parenthèses ou parenthèses vides) est six, ce qui correspond également au nombre maximal de fractions de seconde. Regardez l'exemple suivant :
SELECT LOCALTIME(0) ;
Voici le résultat de la requête :
21:12:06
Ce résultat ne contient pas de fractions de seconde car nous mettons 0 comme argument.
LOCALTIME
renvoie l'heure à laquelle la transaction en cours commence. La différence entre LOCALTIME
et CURRENT_TIME
est que LOCALTIME n'inclut pas le décalage de fuseau horaire.