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.