Catégories :

Fonctions de date et d’heure

DATE_PART

Extrait la date ou la partie de date ou d’heure spécifiée d’une date, d’une heure ou d’un horodatage.

Alternatives :

EXTRACT, HOUR / MINUTE / SECOND, YEAR* / DAY* / WEEK* / MONTH / QUARTER

Syntaxe

DATE_PART( <date_or_time_part> , <date_or_time_expr> )
Copy

Renvoie

Le type de données de la valeur renvoyée est NUMBER.

Notes sur l’utilisation

  • date_or_time_part doit être l’une des valeurs répertoriées dans Parties de date et d’heure prises en charge.

    • Lorsque date_or_time_part correspond à week (ou à l’une de ses variantes), la sortie est contrôlée par le paramètre de session WEEK_START.

    • Lorsque date_or_time_part est dayofweek ou yearofweek (ou l’une de leurs variations), la sortie est contrôlée par les paramètres de session WEEK_OF_YEAR_POLICY et WEEK_START.

    Pour plus de détails, y compris des exemples, voir Semaines civiles et jours de semaine.

  • date_or_time_expr peut être une date, une heure ou un horodatage.

Exemples

Ceci montre un exemple simple d’extraction d’une partie de DATE :

SELECT DATE_PART(QUARTER, '2013-05-08'::DATE);
+----------------------------------------+
| DATE_PART(QUARTER, '2013-05-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+
Copy

Ceci montre un exemple d’extraction d’une partie de TIMESTAMP:

SELECT TO_TIMESTAMP('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(YEAR, "TIME_STAMP1") AS "EXTRACTED YEAR";
+-------------------------+----------------+
| TIME_STAMP1             | EXTRACTED YEAR |
|-------------------------+----------------|
| 2013-05-08 23:39:20.123 |           2013 |
+-------------------------+----------------+
Copy

Ceci montre un exemple de conversion de TIMESTAMP en nombre de secondes depuis le début de l’epoch Unix (minuit le 1er janvier 1970) :

SELECT TO_TIMESTAMP('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_SECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2013-05-08 23:39:20.123 |             1368056360 |
+-------------------------+------------------------+
Copy

Ceci montre un exemple de conversion de TIMESTAMP en nombre de millisecondes depuis le début de l’epoch Unix (minuit le 1er janvier 1970) :

SELECT TO_TIMESTAMP('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_MILLISECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2013-05-08 23:39:20.123 |               1368056360123 |
+-------------------------+-----------------------------+
Copy