Date/Time Functions & Operators
Nous avons discuté des types de données Date/Time dans le chapitre Types de données. Voyons maintenant les opérateurs et les fonctions Date/Time.
Le tableau suivant liste les comportements des opérateurs arithmétiques de base.
Opérateur | Exemple | Résultat |
---|---|---|
+ |
date '2022-09-28' + integer '7' | date '2022-10-05' |
+ |
date '2022-09-28' + intervalle '1 hour' | horodatage '2022-09-28 01:00:00' |
+ |
date '2022-09-28' + temps '03:00' | horodatage '2022-09-28 03:00:00' |
+ |
intervalle '1 day' + intervalle '1 hour' | intervalle '1 day 01:00:00' |
+ |
horodatage '2022-09-28 01:00' + intervalle '23 hours' | horodatage '2022-09-29 00:00:00' |
+ |
temps '01:00' + intervalle '3 hours' | temps '04:00:00' |
- |
- intervalle '23 hours' | intervalle '-23:00:00' |
- |
date '2022-10-01' - date '2022-09-28' | entier '3' (days) |
- |
date '2022-10-01' - entier '7' | date '2022-09-24' |
- |
date '2022-09-28' - intervalle '1 hour' | horodatage '2022-09-27 23:00:00' |
- |
temps '05:00' - temps '03:00' | intervalle '02:00:00' |
- |
temps '05:00' - intervalle '2 hours' | temps '03:00:00' |
- |
horodatage '2022-09-28 23:00' - intervalle '23 hours' | horodatage '2022-09-28 00:00:00' |
- |
intervalle '1 day' - intervalle '1 hour' | intervalle '1 day -01:00:00' |
- |
horodatage '2022-09-29 03:00' - horodatage '2022-09-27 12:00' | intervalle '1 day 15:00:00' |
* |
900 * intervalle '1 second' | intervalle '00:15:00' |
* |
21 * intervalle '1 day' | intervalle '21 days' |
* |
double precision '3.5' * interval '1 hour' | intervalle '03:30:00' |
* |
intervalle "1 heure" / double précision "1,5" | intervalle '00:40:00' |
Vous trouverez ci-dessous la liste de toutes les fonctions importantes liées à la date et à l'heure :
Function & Description
- AGE() - Soustraire les arguments.
- CURRENT DATE/TIME() - Date et heure actuelles.
- DATE_PART() - Obtenir une sous-zone (équivalent à extraire).
- EXTRACT() - Obtenir le sous-champ.
- ISFINITE() - Test pour la date, l'heure et l'intervalle finis (pas +/-infini).
- JUSTIFY - Ajuster l'intervalle.
AGE(timestamp, timestamp), AGE(timestamp)
Function & Description
AGE(timestamp, timestamp)
- Lorsqu'il est invoqué avec la forme TIMESTAMP du second argument, AGE() soustrait les arguments, produisant un résultat "symbolique" qui utilise les années et les mois et est de type INTERVAL.AGE(timestamp)
- Lorsqu'elle est invoquée avec le seul TIMESTAMP comme argument, AGE() soustrait de la date actuelle (à minuit).
Exemple de la fonction AGE(timestamp, timestamp)
:
testdb=# SELECT AGE(timestamp '2001-04-10', timestamp '1957-06-13');
L'instruction PostgreSQL ci-dessus produira le résultat suivant :
age
-------------------------
43 years 9 mons 27 days
Exemple de la fonction AGE(timestamp) :
testdb=# select age(timestamp '1957-06-13');
L'instruction PostgreSQL ci-dessus produira le résultat suivant :
age
--------------------------
55 years 10 mons 22 days
CURRENT DATE/TIME()
PostgreSQL fournit un certain nombre de fonctions qui renvoient des valeurs liées à la date et à l'heure actuelles. Voici quelques fonctions :
Fonction et description
- CURRENT_DATE - Donne la date actuelle.
- CURRENT_TIME - Délivre des valeurs avec le fuseau horaire.
- CURRENT_TIMESTAMP - Délivre des valeurs avec le fuseau horaire.
- CURRENT_TIME(precision) - Le paramètre de précision est facultatif et permet d'arrondir le résultat à ce nombre de chiffres fractionnaires dans le champ des secondes.
- CURRENT_TIMESTAMP(precision) - Le paramètre de précision est facultatif et permet d'arrondir le résultat à ce nombre de chiffres fractionnaires dans le champ des secondes.
- LOCALTIME - Délivre des valeurs sans fuseau horaire.
- LOCALTIMESTAMP - Délivre des valeurs sans fuseau horaire.
- LOCALTIME(precision) - Le paramètre de précision est facultatif et permet d'arrondir le résultat à ce nombre de chiffres fractionnaires dans le champ des secondes.
- LOCALTIMESTAMP(precision) - Le paramètre de précision est facultatif et permet d'arrondir le résultat à ce nombre de chiffres fractionnaires dans le champ des secondes.
Exemples utilisant les fonctions du tableau ci-dessus :
testdb=# SELECT CURRENT_TIME;
timetz
--------------------
08:01:34.656+05:30
(1 row)
testdb=# SELECT CURRENT_DATE;
date
------------
2013-05-05
(1 row)
testdb=# SELECT CURRENT_TIMESTAMP;
now
-------------------------------
2013-05-05 08:01:45.375+05:30
(1 row)
testdb=# SELECT CURRENT_TIMESTAMP(2);
timestamptz
------------------------------
2013-05-05 08:01:50.89+05:30
(1 row)
testdb=# SELECT LOCALTIMESTAMP;
timestamp
------------------------
2013-05-05 08:01:55.75
(1 row)
PostgreSQL fournit également des fonctions qui renvoient l'heure de début de l'instruction courante, ainsi que l'heure courante réelle à l'instant où la fonction est appelée. Ces fonctions sont :
Fonction et description
transaction_timestamp()
- Il est équivalent à CURRENT_TIMESTAMP, mais il est nommé de manière à refléter clairement ce qu'il retourne.statement_timestamp()
- Elle renvoie l'heure de début de la déclaration en cours.clock_timestamp()
- Il renvoie l'heure actuelle, et sa valeur change donc même au sein d'une seule commande SQL.timeofday()
- Il renvoie l'heure actuelle, mais sous la forme d'une chaîne de texte formatée plutôt que d'un horodatage avec valeur de fuseau horaire.now()
- C'est un équivalent traditionnel de PostgreSQL à transaction_timestamp().
DATE_PART et DATE_TRUNC
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !