

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Types datetime
<a name="r_Datetime_types"></a>

**Topics**
+ [

## Stockage et plages
](#r_Datetime_types-storage-and-ranges)
+ [

## DATE
](#r_Datetime_types-date)
+ [

## TIME
](#r_Datetime_types-time)
+ [

## TIMETZ
](#r_Datetime_types-timetz)
+ [

## TIMESTAMP
](#r_Datetime_types-timestamp)
+ [

## TIMESTAMPTZ
](#r_Datetime_types-timestamptz)
+ [

# Exemples avec les types datetime
](r_Examples_with_datetime_types.md)
+ [

# Littéraux de type date, heure et horodatage
](r_Date_and_time_literals.md)
+ [

# Types de données et littéraux interval
](r_interval_data_types.md)

Les types de données datetime incluent DATE, TIMESTAMP et TIMESTAMPTZ.

## Stockage et plages
<a name="r_Datetime_types-storage-and-ranges"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_Datetime_types.html)

## DATE
<a name="r_Datetime_types-date"></a>

Utilisez le type de données DATE pour stocker les dates calendaires simples sans horodatage.

## TIME
<a name="r_Datetime_types-time"></a>

TIME est un alias de TIME WITHOUT TIME ZONE.

Utilisez le type de données TIME pour stocker l’heure de la journée. 

Les colonnes TIME stockent des valeurs avec un maximum de six digits de précision pour les secondes fractionnées.

Par défaut, les valeurs TIME sont en temps universel coordonné (UTC) dans les tables utilisateur et les tables système Amazon Redshift. 

## TIMETZ
<a name="r_Datetime_types-timetz"></a>

TIMETZ est un alias de TIMES WITH TIME ZONE.

Utilisez le type de données TIMETZ pour stocker l’heure de la journée avec un fuseau horaire. 

Les colonnes TIMETZ stockent des valeurs avec un maximum de six digits de précision pour les secondes fractionnées.

Par défaut, les valeurs TIPZ sont UTC dans les tables utilisateur et dans les tables système Amazon Redshift. 

## TIMESTAMP
<a name="r_Datetime_types-timestamp"></a>

TIMESTAMP est un alias de TIMESTAMP WITHOUT TIME ZONE.

Utilisez le type de données TIMESTAMP pour stocker des valeurs d’horodatage complètes incluant la date et l’heure de la journée. 

Les colonnes TIMESTAMP stockent des valeurs avec un maximum de six digits de précision pour les secondes fractionnées.

Les colonnes TIMESTAMP stockent des valeurs avec un maximum de six digits de précision pour les secondes fractionnées. Cette valeur d’horodatage complète a des valeurs par défaut (00) pour les heures, minutes et secondes manquantes. Les valeurs de fuseau horaire dans les chaînes d’entrée sont ignorées.

Par défaut, les valeurs TIMESTAMP sont UTC dans les tables utilisateur et dans les tables système Amazon Redshift. 

## TIMESTAMPTZ
<a name="r_Datetime_types-timestamptz"></a>

TIMESTAMPTZ est un alias de TIMESTAMP WITH TIME ZONE.

Utilisez le type de données TIMESTAMPTZ pour saisir des valeurs d’horodatage complètes incluant la date, l’heure de la journée et un fuseau horaire. Lorsqu’une valeur d’entrée comprend un fuseau horaire, Amazon Redshift utilise le fuseau horaire pour convertir la valeur en UTC et stocke la valeur UTC.

Pour afficher la liste des noms de fuseaux horaires pris en charge, exécutez la commande suivante. 

```
select pg_timezone_names();
```

 Pour afficher la liste des abréviations de fuseaux horaires prises en charge, exécutez la commande suivante. 

```
select pg_timezone_abbrevs();
```

Vous pouvez également trouver des informations sur les fuseaux horaires dans la [base de données des fuseaux horaires IANA](https://www.iana.org/time-zones).

Le tableau suivant présente des exemples de formats de fuseaux horaires. 


| Format | Exemple | 
| --- | --- | 
|  jj lun hh:mi:ss aaaa tz  |  17 déc 07:37:16 1997 PST   | 
|  mm/dd/yyyyhh:mi:ss.ss tz  |  12/17/1997 07:37:16.00 PST  | 
|  mm/dd/yyyyhh:mi:ss.ss tz  |  12/17/1997 07:37:16.00 États-Unis/Pacifique  | 
|  yyyy-mm-dd hh : mi : ss\$1/-tz  |  1997-12-17 07:37:16-08   | 
| jj.mm.aaaa hh:mi:ss tz |  17.12.1997 07:37:16.00 PST  | 

Les colonnes TIMESTAMPTZ stockent des valeurs avec un maximum de six digits de précision pour les secondes fractionnées.

Si vous insérez une date dans une colonne TIMESTAMPTZ, ou une date avec un horodatage partiel, la valeur est implicitement convertie en une valeur d’horodatage complète. Cette valeur d’horodatage complète a des valeurs par défaut (00) pour les heures, minutes et secondes manquantes.

Les valeurs TIMESTAMPTZ sont au format UTC dans les tables utilisateur.

# Exemples avec les types datetime
<a name="r_Examples_with_datetime_types"></a>

Vous trouverez ci-dessous des exemples d’utilisation des types datetime pris en charge par Amazon Redshift.

## Exemples de date
<a name="r_Examples_with_datetime_types-date-examples"></a>

Les exemples suivants insèrent des dates qui ont des formats différents et affichent le résultat. 

```
create table datetable (start_date date, end_date date);
```

```
insert into datetable values ('2008-06-01','2008-12-31');

insert into datetable values ('Jun 1,2008','20081231');
```

```
select * from datetable order by 1;

start_date |  end_date
-----------------------
2008-06-01 | 2008-12-31
2008-06-01 | 2008-12-31
```

Si vous insérez une valeur d’horodatage dans une colonne DATE, la partie temps est ignorée et seule la date est chargée.

## Exemples d’heure
<a name="r_Examples_with_datetime_types-time-examples"></a>

Les exemples suivants insèrent des valeurs TIME et TIMETZ qui n’ont pas le même format et affichent la sortie.

```
create table timetable (start_time time, end_time timetz);
```

```
insert into timetable values ('19:11:19','20:41:19 UTC');
insert into timetable values ('191119', '204119 UTC');
```

```
select * from timetable order by 1;
start_time |  end_time
------------------------
 19:11:19  | 20:41:19+00
 19:11:19  | 20:41:19+00
```

## Exemples d’horodatages
<a name="r_Examples_with_datetime_types-timestamp-examples"></a>

Si vous insérez une date dans une colonne TIMESTAMP ou TIMESTAMPTZ, l’heure par défaut est minuit. Par exemple, si vous insérez le littéral `20081231`, la valeur stockée est `2008-12-31 00:00:00`. 

Pour modifier le fuseau horaire de la session en cours, utilisez la commande [SET](r_SET.md) pour définir le paramètre de configuration [timezone](r_timezone_config.md).

L’exemple suivant insère des horodatages qui ont des formats différents et affiche le tableau qui en résulte. 

```
create table tstamp(timeofday timestamp, timeofdaytz timestamptz);

insert into tstamp values('Jun 1,2008  09:59:59', 'Jun 1,2008 09:59:59 EST' );
insert into tstamp values('Dec 31,2008 18:20','Dec 31,2008 18:20');
insert into tstamp values('Jun 1,2008  09:59:59 EST', 'Jun 1,2008 09:59:59');

SELECT * FROM tstamp;

+---------------------+------------------------+
|      timeofday      |      timeofdaytz       |
+---------------------+------------------------+
| 2008-06-01 09:59:59 | 2008-06-01 14:59:59+00 |
| 2008-12-31 18:20:00 | 2008-12-31 18:20:00+00 |
| 2008-06-01 09:59:59 | 2008-06-01 09:59:59+00 |
+---------------------+------------------------+
```

# Littéraux de type date, heure et horodatage
<a name="r_Date_and_time_literals"></a>

Vous trouverez ci-dessous les règles d’utilisation des littéraux de type date, heure et horodatage pris en charge par Amazon Redshift. 

## Dates
<a name="r_Date_and_time_literals-dates"></a>

Les dates en entrée suivantes sont toutes des exemples valides de valeurs de dates littérales pour le type de données DATE que vous pouvez charger dans des tables Amazon Redshift. La valeur `MDY DateStyle` par défaut est supposée être en vigueur. Ce mode signifie que la valeur month précède la valeur day dans les chaînes telles que `1999-01-08` et `01/02/00`. 

**Note**  
Une date ou un horodatage littéral doit être placé entre guillemets lorsque vous le chargez dans une table.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_Date_and_time_literals.html)

## Times
<a name="r_Date_and_time_literals-times"></a>

Les horodatages en entrée suivants sont tous des exemples valides de valeurs d’heure littérales pour les types de données TIME et TIMETZ que vous pouvez charger dans les tables Amazon Redshift. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_Date_and_time_literals.html)

## Horodatages
<a name="r_Date_and_time_literals-timestamps"></a>

Les horodatages en entrée suivants sont tous des exemples valides de valeurs d’heure littérales pour les types de données TIMESTAMP et TIMESTAMPTZ que vous pouvez charger dans les tables Amazon Redshift. Tous les littéraux de date valides peuvent être combinés avec les littéraux d’heure suivants. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_Date_and_time_literals.html)

## Valeurs datetime spéciales
<a name="r_Date_and_time_literals-special-datetime-values"></a>

Les valeurs spéciales suivantes peuvent être utilisées comme littéraux datetime et comme arguments des fonctions date. Elles requièrent des apostrophes droites et sont converties en valeurs timestamp régulières lors du traitement de la requête. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_Date_and_time_literals.html)

Les exemples suivants illustrent comment `now` et `today` fonctionnent avec la fonction DATEADD.

```
select dateadd(day,1,'today');

date_add
---------------------
2009-11-17 00:00:00
(1 row)

select dateadd(day,1,'now');

date_add
----------------------------
2009-11-17 10:45:32.021394
(1 row)
```

# Types de données et littéraux interval
<a name="r_interval_data_types"></a>

Vous pouvez utiliser un type de données interval pour stocker les durées dans des unités telles que `seconds`, `minutes`, `hours`, `days`, `months` et `years`. Les types de données et les littéraux interval peuvent être utilisés dans les calculs de date/heure, tels que l’ajout d’intervalles aux dates et aux horodatages, la somme des intervalles et la soustraction d’un intervalle d’une date ou d’un horodatage. Les littéraux interval peuvent être utilisés comme valeurs d’entrée pour intercaler les colonnes de type de données d’une table. 

## Syntaxe du type de données interval
<a name="r_interval_data_types-syntax"></a>

Pour spécifier un type de données interval afin de stocker une durée en années et en mois :

```
INTERVAL year_to_month_qualifier
```

Pour spécifier un type de données interval afin de stocker une durée en jours, heures, minutes et secondes :

```
INTERVAL day_to_second_qualifier [ (fractional_precision) ]
```

## Syntaxe du littéral interval
<a name="r_interval_data_types-syntax-literal"></a>

Pour spécifier un littéral interval afin de définir une durée en années et en mois :

```
INTERVAL quoted-string year_to_month_qualifier
```

Pour spécifier un littéral interval afin de définir une durée en jours, heures, minutes et secondes :

```
INTERVAL quoted-string day_to_second_qualifier [ (fractional_precision) ]
```

## Arguments
<a name="r_interval_data_types-arguments"></a>

 *quoted-string*   
Spécifie une valeur numérique positive ou négative spécifiant une quantité et l’unité date/heure en tant que chaîne d’entrée. Si *quoted-string* ne contient qu’un chiffre, Amazon Redshift détermine les unités à partir de *year\$1to\$1month\$1qualifier* ou *day\$1to\$1second\$1qualifier*. Par exemple, `'23' MONTH` représente `1 year 11 months`, `'-2' DAY` représente `-2 days 0 hours 0 minutes 0.0 seconds`, `'1-2' MONTH` représente `1 year 2 months` et `'13 day 1 hour 1 minute 1.123 seconds' SECOND` représente `13 days 1 hour 1 minute 1.123 seconds`. Pour plus d’informations sur les formats de sortie d’un intervalle, consultez [Styles d’intervalle](#r_interval_data_types-interval-styles).

 *year\$1to\$1month\$1qualifier*   
Spécifie la plage de l’intervalle. Si vous utilisez un qualificatif et que vous créez un intervalle dont les unités de temps sont inférieures au qualificatif, Amazon Redshift tronque et supprime les plus petites parties de l’intervalle. Les valeurs valides pour *year\$1to\$1month\$1qualifier* sont les suivantes :  
+ `YEAR`
+ `MONTH`
+ `YEAR TO MONTH`

 *day\$1to\$1second\$1qualifier*   
Spécifie la plage de l’intervalle. Si vous utilisez un qualificatif et que vous créez un intervalle dont les unités de temps sont inférieures au qualificatif, Amazon Redshift tronque et supprime les plus petites parties de l’intervalle. Les valeurs valides pour *day\$1to\$1second\$1qualifier* sont les suivantes :  
+ `DAY`
+ `HOUR`
+ `MINUTE`
+ `SECOND`
+ `DAY TO HOUR`
+ `DAY TO MINUTE`
+ `DAY TO SECOND`
+ `HOUR TO MINUTE`
+ `HOUR TO SECOND`
+ `MINUTE TO SECOND`
La sortie du littéral INTERVAL est tronquée au plus petit composant INTERVAL spécifié. Par exemple, lorsque vous utilisez un qualificateur MINUTE, Amazon Redshift supprime les unités de temps inférieures à MINUTE.  

```
select INTERVAL '1 day 1 hour 1 minute 1.123 seconds' MINUTE
```
La valeur résultante est tronquée à `'1 day 01:01:00'`.

 *fractional\$1precision*   
Paramètre facultatif qui spécifie le nombre de chiffres fractionnaires autorisés dans l’intervalle. L’argument *fractional\$1precision* ne doit être spécifié que si votre intervalle contient SECOND. Par exemple, `SECOND(3)` crée un intervalle qui n’autorise que trois chiffres fractionnaires, tels que 1,234 seconde. Le nombre maximum de chiffres fractionnaires est de six.

La configuration de session `interval_forbid_composite_literals` détermine si une erreur est renvoyée lorsqu’un intervalle est spécifié avec les parties YEAR TO MONTH et DAY TO SECOND. Pour plus d’informations, consultez [interval\$1forbid\$1composite\$1literals](r_interval_forbid_composite_literals.md).

## Arithmétique des intervalles
<a name="r_interval_data_types-arithmetic"></a>

Vous pouvez utiliser des valeurs interval avec d’autres valeurs datetime pour effectuer des opérations arithmétiques. Les tableaux suivants décrivent les opérations disponibles et le type de données résultant de chaque opération. 

**Note**  
 Les opérations qui peuvent produire les résultats `date` et `timestamp` le font en fonction de la plus petite unité de temps impliquée dans l’équation. Par exemple, lorsque vous ajoutez un `interval` à une `date`, le résultat est une `date`, s’il s’agit d’un intervalle YEAR TO MONTH, et un horodatage s’il s’agit d’un intervalle DAY TO SECOND. 

Les opérations où le premier opérande est un `interval` produisent les résultats suivants pour le second opérande donné :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_interval_data_types.html)

Les opérations où le premier opérande est une `date` produisent les résultats suivants pour le second opérande donné :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_interval_data_types.html)

Les opérations où le premier opérande est une `timestamp` produisent les résultats suivants pour le second opérande donné :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/r_interval_data_types.html)

## Styles d’intervalle
<a name="r_interval_data_types-interval-styles"></a>

Vous pouvez utiliser la commande SQL [SET](r_SET.md) pour modifier le format d’affichage de sortie de vos valeurs interval. Lorsque vous utilisez le type de données interval dans SQL, convertissez-le en texte pour voir le style d’intervalle attendu, par exemple, `YEAR TO MONTH::text`. Les valeurs disponibles pour effectuer SET sur la valeur `IntervalStyle` sont les suivantes :
+ `postgres` : suit le style PostgreSQL. Il s’agit de l’option par défaut.
+ `postgres_verbose` : suit le style détaillé PostgreSQL.
+ `sql_standard` : suit le style des littéraux interval SQL standard.

La commande suivante définit le style d’intervalle sur `sql_standard`.

```
SET IntervalStyle to 'sql_standard';
```

**format de sortie postgres**

Le format de sortie pour le style d’intervalle `postgres` est le suivant. Chaque valeur numérique peut être négative.

```
'<numeric> <unit> [, <numeric> <unit> ...]'
```

```
select INTERVAL '1-2' YEAR TO MONTH::text 

varchar
---------------
1 year 2 mons
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text

varchar
------------------
1 day 02:03:04.5678
```

**format de sortie postgres\$1verbose**

La syntaxe postgres\$1verbose est similaire à postgres, mais les sorties postgres\$1verbose contiennent également l’unité de temps.

```
'[@] <numeric> <unit> [, <numeric> <unit> ...] [direction]'
```

```
select INTERVAL '1-2' YEAR TO MONTH::text 

varchar
-----------------
@ 1 year 2 mons
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text

varchar
---------------------------
@ 1 day 2 hours 3 mins 4.56 secs
```

**format de sortie sql\$1standard**

Les valeurs interval year to month sont formatées comme suit. La spécification d’un signe négatif avant l’intervalle indique que l’intervalle est une valeur négative et s’applique à l’ensemble de l’intervalle.

```
'[-]yy-mm'
```

Les valeurs interval day to second sont formatées comme suit.

```
'[-]dd hh:mm:ss.ffffff'
```

```
SELECT INTERVAL '1-2' YEAR TO MONTH::text 
  
varchar   
-------
1-2
```

```
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::text 

varchar
---------------
1 2:03:04.5678
```

## Exemples de type de données interval
<a name="r_interval_data_types-examples"></a>

Les exemples suivants montrent comment utiliser les types de données INTERVAL avec des tables.

```
create table sample_intervals (y2m interval month, h2m interval hour to minute);
insert into sample_intervals values (interval '20' month, interval '2 days 1:1:1.123456' day to second);
select y2m::text, h2m::text from sample_intervals;


      y2m      |       h2m      
---------------+-----------------
 1 year 8 mons | 2 days 01:01:00
```

```
update sample_intervals set y2m = interval '2' year where y2m = interval '1-8' year to month;
select * from sample_intervals;

   y2m   |       h2m       
---------+-----------------
 2 years | 2 days 01:01:00
```

```
delete from sample_intervals where h2m = interval '2 1:1:0' day to second;
select * from sample_intervals;

 y2m | h2m 
-----+-----
```

## Exemples de littéraux interval
<a name="r_interval_data_types_literals-examples"></a>

Les exemples suivants sont exécutés avec le style d’intervalle défini sur `postgres`.

L’exemple suivant montre comment créer un littéral INTERVAL de 1 an.

```
select INTERVAL '1' YEAR 

intervaly2m
---------------
1 years 0 mons
```

Si vous spécifiez une *quoted-string* qui dépasse le qualificatif, les unités de temps restantes sont tronquées par rapport à l’intervalle. Dans l’exemple suivant, un intervalle de 13 mois devient 1 an et 1 mois, mais le mois restant est omis en raison du qualificatif YEAR.

```
select INTERVAL '13 months' YEAR

intervaly2m
---------------
1 years 0 mons
```

Si vous utilisez un qualificatif inférieur à votre chaîne d’intervalle, les unités restantes sont incluses.

```
select INTERVAL '13 months' MONTH

intervaly2m
---------------
1 years 1 mons
```

Si vous spécifiez une précision dans votre intervalle, le nombre de chiffres fractionnaires est tronqué à la précision spécifiée.

```
select INTERVAL '1.234567' SECOND (3)

intervald2s
--------------------------------
0 days 0 hours 0 mins 1.235 secs
```

Si vous ne spécifiez aucune précision, Amazon Redshift utilise la précision maximale de 6.

```
select INTERVAL '1.23456789' SECOND

intervald2s
-----------------------------------
0 days 0 hours 0 mins 1.234567 secs
```

L’exemple suivant montre comment créer un intervalle par plage.

```
select INTERVAL '2:2' MINUTE TO SECOND

intervald2s
------------------------------
0 days 0 hours 2 mins 2.0 secs
```

Les qualificatifs dictent les unités que vous spécifiez. Par exemple, même si l’exemple suivant utilise la même *quoted-string* de « 2:2 » que l’exemple précédent, Amazon Redshift reconnaît qu’il utilise des unités de temps différentes en raison du qualificatif.

```
select INTERVAL '2:2' HOUR TO MINUTE

intervald2s
------------------------------
0 days 2 hours 2 mins 0.0 secs
```

Les abréviations et les pluriels de chaque unité sont également pris en charge. Par exemple, `5s`, `5 second` et `5 seconds` sont des intervalles équivalents. Les unités prises en charge sont les années, les mois, les heures, les minutes et les secondes.

```
select INTERVAL '5s' SECOND

intervald2s
------------------------------
0 days 0 hours 0 mins 5.0 secs
```

```
select INTERVAL '5 HOURS' HOUR

intervald2s
------------------------------
0 days 5 hours 0 mins 0.0 secs
```

```
select INTERVAL '5 h' HOUR

intervald2s
------------------------------
0 days 5 hours 0 mins 0.0 secs
```

# Exemples de littéraux interval sans syntaxe de qualificatif
<a name="r_interval_literals"></a>

**Note**  
Les exemples suivants illustrent l’utilisation d’un littéral interval sans qualificatif `YEAR TO MONTH` ou `DAY TO SECOND`. Pour plus d’informations sur l’utilisation du littéral interval recommandé avec un qualificatif, consultez [Types de données et littéraux interval](r_interval_data_types.md).

Utilisez un littéral de type interval pour identifier les périodes spécifiques, comme `12 hours` ou `6 months`. Vous pouvez utiliser ces littéraux de type interval dans les cas et les calculs qui impliquent des expressions de type datetime. 

 Un littéral interval est exprimé comme la combinaison du mot clé INTERVAL avec une quantité numérique et d’une partie date prise en charge ; par exemple : `INTERVAL '7 days'` ou `INTERVAL '59 minutes'`. Plusieurs quantités et unités peuvent être associées pour former un intervalle plus précis ; par exemple : `INTERVAL '7 days, 3 hours, 59 minutes'`. Les abréviations et les pluriels de chaque unité sont également pris en charge ; par exemple : `5 s`, `5 second` et `5 seconds` sont des intervalles équivalents.

Si vous ne spécifiez pas une partie date, la valeur de l’intervalle correspond à des secondes. Vous pouvez spécifier la valeur de la quantité sous forme de fraction (par exemple : `0.5 days`).

Les exemples suivants illustrent une série de calculs avec différentes valeurs d’intervalle.

Ce qui suit ajoute 1 seconde à la date spécifiée.

```
select caldate + interval '1 second' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 00:00:01
(1 row)
```

Ce qui suit ajoute 1 minute à la date spécifiée.

```
select caldate + interval '1 minute' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 00:01:00
(1 row)
```

Ce qui suit ajoute 3 heures et 35 minutes à la date spécifiée.

```
select caldate + interval '3 hours, 35 minutes' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 03:35:00
(1 row)
```

Ce qui suit ajoute 52 semaines à la date spécifiée.

```
select caldate + interval '52 weeks' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2009-12-30 00:00:00
(1 row)
```

Ce qui suit ajoute 1 semaine, 1 heure, 1 minute, et 1 seconde à la date spécifiée.

```
select caldate + interval '1w, 1h, 1m, 1s' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2009-01-07 01:01:01
(1 row)
```

Ce qui suit ajoute 12 heures (la moitié d’une journée) à la date spécifiée.

```
select caldate + interval '0.5 days' as dateplus from date
where caldate='12-31-2008';
dateplus
---------------------
2008-12-31 12:00:00
(1 row)
```

Ce qui suit soustrait 4 mois à compter du 15 février 2023 et le résultat est le 15 octobre 2022.

```
select date '2023-02-15' - interval '4 months';

?column?
---------------------
2022-10-15 00:00:00
```

Ce qui suit soustrait 4 mois à compter du 31 mars 2023 et le résultat est le 30 novembre 2022. Le calcul prend en compte le nombre de jours dans un mois.

```
select date '2023-03-31' - interval '4 months';

?column?
---------------------
2022-11-30 00:00:00
```