- Catégories :
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> )
DATE_PART( <date_or_time_part> FROM <date_or_time_expr> )
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'
oumonth
).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
estdayofweek
ouyearofweek
(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);
+----------------------------------------+
| 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";
+-------------------------+----------------+
| 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";
+-------------------------+------------------------+
| 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";
+-------------------------+-----------------------------+
| TIME_STAMP1 | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 | 1712619560123 |
+-------------------------+-----------------------------+