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

Fonctions pour manipuler les données dans PostgreSQL

Brian Piccolo

Sr. Director, Digital Strategy

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

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

  • Précision des horodatages transactionnels peu utile pour l'analyse
2005-05-13 08:53:53
  • Souvent, il faut extraire des composantes d'un horodatage
2005 or 5 or 2 or Friday
  • Ou convertir / tronquer la précision pour normaliser
2005-05-13 00:00:00
Fonctions pour manipuler les données dans PostgreSQL

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

  • EXTRACT( field FROM source )

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

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

Extraction de sous-champs d'horodatages

Données transactionnelles de la table payment de DVD Rentals

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 pour manipuler les données dans PostgreSQL

Extraction de sous-champs d'horodatages

Données de la table payment par année et 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 pour manipuler les données dans PostgreSQL

Tronquer des horodatages avec DATE_TRUNC()

La fonction DATE_TRUNC() tronque les types de données timestamp ou interval.

  • 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');
Result: 2005-05-01 00:00:00
Fonctions pour manipuler les données dans PostgreSQL

Passons à la pratique !

Fonctions pour manipuler les données dans PostgreSQL

Preparing Video For Download...