Catégories :

Fonctions de date et d’heure

EXTRACT

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 :

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

Syntaxe

EXTRACT( <date_or_time_part> FROM <date_or_time_expr> )
Copy
EXTRACT( <date_or_time_part> , <date_or_timestamp_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

Spécifiez la partie year pour extraire l’année d’un horodatage :

SELECT EXTRACT(year FROM TO_TIMESTAMP('2024-04-10T23:39:20.123-07:00')) AS YEAR;
Copy
+------+
| YEAR |
|------|
| 2024 |
+------+

Utilisez EXTRACT avec la fonction DECODE et la partie dayofweek pour renvoyer le nom complet du jour de la semaine en cours :

SELECT DECODE(EXTRACT(dayofweek FROM SYSTIMESTAMP()),
  1, 'Monday',
  2, 'Tuesday',
  3, 'Wednesday',
  4, 'Thursday',
  5, 'Friday',
  6, 'Saturday',
  7, 'Sunday') AS DAYOFWEEK;
Copy
+-----------+
| DAYOFWEEK |
|-----------|
| Thursday  |
+-----------+

Note

La sortie dépend de la valeur renvoyée par la fonction SYSTIMESTAMP lorsque vous exécutez la requête. Vous pouvez également utiliser la fonction DAYNAME pour extraire le nom à trois lettres du jour de la semaine de la date ou de l’horodatage spécifié.