Extraction et transformation des données de date/heure

Fonctions permettant de manipuler les données dans PostgreSQL

Brian Piccolo

Sr. Director, Digital Strategy

Extraction et transformation des données de date et d'heure

Exploration des fonctions EXTRACT(), DATE_PART() et DATE_TRUNC()

  • La précision de l'horodatage transactionnel n'est pas pertinente pour l'analyse
2005-05-13 08:53:53
  • Il est fréquemment nécessaire d'extraire des parties d'horodatages
2005 or 5 or 2 or Friday
  • Ou convertir/tronquer la précision de l'horodatage afin de le normaliser
2005-05-13 00:00:00
Fonctions permettant de manipuler les données dans PostgreSQL

Extraction et transformation des données de date/heure

  • EXTRACT( champ FROM source )

    SELECT EXTRACT(quarter FROM timestamp '2005-01-24 05:12:00') AS quarter;
    
  • DATE_PART(’champ’, source)

    SELECT DATE_PART('quarter', timestamp '2005-01-24 05:12:00') AS quarter;
    
+---------+
| quarter |
|---------|
| 1       |
+---------+
Fonctions permettant de manipuler les données dans PostgreSQL

Extraction de sous-champs à partir de données d'horodatage

Données transactionnelles provenant de la table de paiement des locations de DVD

SELECT * FROM payment;
+--------------------------------------------------------------------------------+
| payment_id | customer_id | staff_id | rental_id | amount | payment_date        |
|------------|-------------|----------|-----------|--------|---------------------|
| 1          | 1           | 1        | 76        | 2.99   | 2005-05-25 11:30:37 |
| 2          | 1           | 1        | 573       | 0.99   | 2005-05-28 10:35:23 |
| 3          | 1           | 1        | 1185      | 5.99   | 2005-06-15 0:54:12  |
+--------------------------------------------------------------------------------+
Fonctions permettant de manipuler les données dans PostgreSQL

Extraction de sous-champs à partir de données d'horodatage

Données issues de la table des paiements par année et par trimestre

SELECT 
  EXTRACT(quarter FROM payment_date) AS quarter,
  EXTRACT(year FROM payment_date) AS year, 
  SUM(amount) AS total_payments 
FROM 
  payment 
GROUP BY 1, 2;

Résultats

+---------------------------------+
| quarter | year | total_payments |
|---------|------|----------------|
| 2       | 2005 | 14456.31       |
| 3       | 2005 | 52446.02       |
| 1       | 2006 | 514.18         |
+---------------------------------+
Fonctions permettant de manipuler les données dans PostgreSQL

Tronquer les horodatages à l'aide de DATE_TRUNC()

La fonction DATE_TRUNC() tronquera les types de données horodatage ou intervalle.

  • Tronquer l'horodatage « 2005-05-21 15:30:30 » par année
SELECT DATE_TRUNC('year', TIMESTAMP '2005-05-21 15:30:30');

Result: 2005-01-01 00:00:00
  • Tronquer l'horodatage « 2005-05-21 15:30:30 » par mois

SELECT DATE_TRUNC('month', TIMESTAMP '2005-05-21 15:30:30');


----CODE_GLUE----
```out
Result: 2005-05-01 00:00:00
Fonctions permettant de manipuler les données dans PostgreSQL

Passons à la pratique !

Fonctions permettant de manipuler les données dans PostgreSQL

Preparing Video For Download...