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_timestamp_expr> )
Copy
DATE_PART( <date_or_time_part> FROM <date_or_time_expr> )
Copy

Arguments

date_or_time_part

L’unité de temps. Doit être l’une des valeurs répertoriées dans Parties de date et d’heure prises en charge (par exemple month). La valeur peut être un littéral de chaîne ou peut être sans guillemets (par exemple 'month' ou month).

  • 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 ses 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_timestamp_expr

Date, heure, horodatage ou expression pouvant être évalué sur une date, une heure ou un horodatage.

Renvoie

Renvoie une valeur de type de données NUMBER.

Notes sur l’utilisation

Actuellement, quand date_or_timestamp_expr est une valeur DATE, les valeurs date_or_time_part suivantes ne sont pas prises en charge :

  • epoch_millisecond

  • epoch_microsecond

  • epoch_nanosecond

Les autres parties de date et d’heure (y compris epoch_second) sont pris en charge.

Exemples

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

SELECT DATE_PART(quarter, '2024-04-08'::DATE);
Copy
+----------------------------------------+
| DATE_PART(QUARTER, '2024-04-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+

Voici un exemple d’extraction d’une partie d’un TIMESTAMP :

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

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(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_second, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
Copy
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2024-04-08 23:39:20.123 |             1712619560 |
+-------------------------+------------------------+

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(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_millisecond, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
Copy
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 |               1712619560123 |
+-------------------------+-----------------------------+