Accéder au contenu principal
Documents
Gestion des tableaux et des schémasSyntaxe de baseDéclencheursBases de donnéesFonctions de la dateFonctions des chaînes de caractèresFonctions mathématiquesFonctions JSONIndexes

PostgreSQL EXTRACT

La fonction EXTRACT de PostgreSQL est utilisée pour récupérer des sous-champs spécifiques tels que l'année, le mois, le jour, l'heure, etc. à partir des valeurs de date/heure. Elle est essentielle pour la manipulation et l'analyse de la date dans les requêtes SQL.

Utilisation

La fonction EXTRAIRE est particulièrement utile lorsque vous devez isoler une partie spécifique d'une valeur de date ou d'heure à des fins de filtrage, de regroupement ou d'affichage. Sa syntaxe est simple :

EXTRACT(field FROM source)

Dans cette syntaxe, field représente la partie de la date et de l'heure que vous souhaitez extraire (par exemple, YEAR, MONTH, DOW, DOY, EPOCH), et source est toute expression renvoyant une valeur timestamp, date, interval, ou time, et pas seulement des littéraux.

Exemples

1. Année d'extraction

SELECT EXTRACT(YEAR FROM '2023-10-14'::date) AS year;

Cet exemple extrait l'année 2023 de la date spécifiée.

2. Extraction du mois à partir de la date courante

SELECT EXTRACT(MONTH FROM CURRENT_DATE) AS month;

Ici, la fonction EXTRACT récupère le mois en cours à partir de la date système.

3. Extraction de l'heure à partir de l'horodatage

SELECT EXTRACT(HOUR FROM TIMESTAMP '2023-10-14 15:23:45') AS hour;

Cet exemple extrait l'heure 15 de l'horodatage donné.

4. Extraction du jour de la semaine

SELECT EXTRACT(DOW FROM CURRENT_DATE) AS day_of_week;

Cet exemple permet d'obtenir le jour de la semaine, le dimanche étant 0 et le samedi 6.

5. Utiliser EXTRACT avec GROUP BY

SELECT EXTRACT(YEAR FROM order_date) AS order_year, COUNT(*)
FROM orders
GROUP BY order_year;

Cet exemple regroupe les commandes par année, démontrant l'utilisation d'EXTRACT avec GROUP BY.

Conseils et bonnes pratiques

  • La précision est importante. Assurez-vous que le site source est au bon format de date et d'heure afin d'éviter les erreurs ou les résultats inattendus.
  • Combinez avec d'autres fonctions. Utilisez EXTRACT avec GROUP BY ou ORDER BY pour organiser les résultats par intervalles de temps.
  • Tenez compte des fuseaux horaires. Tenez compte du fuseau horaire de vos données pour garantir une extraction précise.
  • Vérifier la présence de valeurs nulles. Traitez les nullités potentielles dans les champs date/heure à l'aide de COALESCE ou de fonctions similaires afin d'éviter les échecs des requêtes. Par exemple :
SELECT EXTRACT(YEAR FROM COALESCE(order_date, CURRENT_DATE)) AS year;
  • Types de retour. EXTRACT renvoie une valeur en double précision pour tous les champs, sauf lorsque la source est un intervalle, où il renvoie un nombre entier pour les champs tels que YEAR, MONTH, etc.
  • EXTRACT vs DATE_PART. Les deux fonctions ont des objectifs similaires, mais DATE_PART est une syntaxe de fonction plus traditionnelle dans PostgreSQL. Choisissez en fonction de votre convention personnelle ou de votre projet.