PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir l'heure actuelle (sans fuseau horaire) dans PostgreSQL

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.