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

Comment obtenir la date et l'heure actuelles (sans fuseau horaire) dans PostgreSQL

Problème :

Vous souhaitez obtenir la date et l'heure actuelles dans une base de données PostgreSQL. Vous n'avez pas besoin du décalage horaire.

Solution :

Nous utiliserons la fonction LOCALTIMESTAMP pour obtenir la date et l'heure actuelles sans aucune information de fuseau horaire :

SELECT LOCALTIMESTAMP ;

Voici le résultat de la requête :

2019-09-24 20:10:58.977914

Discussion :

La fonction PostgreSQL LOCALTIMESTAMP renvoie la date et l'heure actuelles (de la machine exécutant cette instance de PostgreSQL) sous la forme d'un horodatage valeur. Il utilise le 'AAAA-MM-JJ hh:mm:ss.nnnnnnn ', où :

  • AAAA est une année à 4 chiffres.
  • MM est un mois à 2 chiffres.
  • JJ est un jour à 2 chiffres.
  • 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 la date et l'heure avec une précision particulière, mettez un entier de 0 à 6 en argument entre parenthèses. Cela renverra la date et l'heure avec le nombre de fractions de secondes souhaité. Par exemple, LOCALTIMESTAMP(1) désigne seulement une fraction de seconde (c'est-à-dire une place après la virgule); 2 renverra deux chiffres, etc. La précision par défaut est 6, qui est également le nombre maximum de fractions de seconde; c'est ce que vous obtenez si vous n'utilisez pas du tout de crochets. Regardez l'exemple suivant :

SELECT LOCALTIMESTAMP(0) ;

Voici le résultat de la requête :

2019-09-24 20:10:58

Ce résultat ne contient pas de fractions de secondes car nous avons mis 0 comme argument.

Cette fonction renvoie l'heure à laquelle la transaction en cours a commencé. La différence entre LOCALTIMESTAMP et CURRENT_TIMESTAMP est que le LOCALTIMESTAMP n'inclut pas le décalage horaire.