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 de données d'intervalle et littéraux
Vous pouvez utiliser un type de données d'intervalle pour stocker les durées dans des unités telles que,seconds,minutes,hours, daysmonths, etyears. Les types de données et les littéraux d'intervalle 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 d'intervalle 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 d'intervalle
Pour spécifier un type de données d'intervalle 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 d'intervalle afin de stocker une durée en jours, heures, minutes et secondes :
INTERVAL day_to_second_qualifier [ (fractional_precision) ]
Syntaxe du littéral d'intervalle
Pour spécifier un intervalle littéral afin de définir une durée en années et en mois :
INTERVAL quoted-string year_to_month_qualifier
Pour spécifier un intervalle littéral afin de définir une durée en jours, heures, minutes et secondes :
INTERVAL quoted-string day_to_second_qualifier [ (fractional_precision) ]
Arguments
- chaîne entre guillemets
-
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 la chaîne entre guillemets ne contient qu'un chiffre, elle AWS Clean Rooms détermine les unités à partir du qualificatif year_to_month_qualifier ou du day_to_second_qualifier. Par exemple,
'23' MONTHreprésente1 year 11 months,'-2' DAYreprésente-2 days 0 hours 0 minutes 0.0 seconds1 year 2 months,'1-2' MONTHreprésente et'13 day 1 hour 1 minute 1.123 seconds' SECONDreprésente13 days 1 hour 1 minute 1.123 seconds. Pour plus d'informations sur les formats de sortie d'un intervalle, consultezStyles d'intervalle. - qualificatif annuel au mois
-
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, AWS Clean Rooms les plus petites parties de l'intervalle sont tronquées et supprimées. Les valeurs valides pour year_to_month_qualifier sont les suivantes :
-
YEAR -
MONTH -
YEAR TO MONTH
-
- qualificatif du jour au deuxième
-
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, AWS Clean Rooms les plus petites parties de l'intervalle sont tronquées et supprimées. Les valeurs valides pour day_to_second_qualifier 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 qualificatif MINUTE, AWS Clean Rooms les unités de temps inférieures à MINUTE sont supprimées.
select INTERVAL '1 day 1 hour 1 minute 1.123 seconds' MINUTELa valeur résultante est tronquée à.
'1 day 01:01:00' -
- précision_fractionnaire
-
Paramètre facultatif qui spécifie le nombre de chiffres fractionnaires autorisés dans l'intervalle. L'argument fractional_precision 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.
Arithmétique des intervalles
Vous pouvez utiliser des valeurs d'intervalle avec d'autres valeurs de date/heure 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 deux date et les timestamp résultats le font en fonction de la plus petite unité de temps impliquée dans l'équation. Par exemple, lorsque vous ajoutez un interval à un, date le résultat est un intervalle d'une date ANNÉE À UN MOIS, et un horodatage s'il s'agit d'un intervalle D'UN JOUR À LA SECONDE.
Les opérations où le premier opérande est an interval produisent les résultats suivants pour le second opérande donné :
| Opérateur | Date | Horodatage | Intervalle | Numérique |
|---|---|---|---|---|
| - | N/A | N/A | Intervalle | N/A |
| + | Date | Date/Horodatage | Intervalle | N/A |
| * | N/A | N/A | N/A | Intervalle |
| / | N/A | N/A | N/A | Intervalle |
Les opérations où le premier opérande est a date produisent les résultats suivants pour le second opérande donné :
| Opérateur | Date | Horodatage | Intervalle | Numérique |
|---|---|---|---|---|
| - | Numérique | Intervalle | Date/Horodatage | Date |
| + | N/A | N/A | N/A | N/A |
Les opérations où le premier opérande est a timestamp produisent les résultats suivants pour le second opérande donné :
| Opérateur | Date | Horodatage | Intervalle | Numérique |
|---|---|---|---|---|
| - | Numérique | Intervalle | Horodatage | Horodatage |
| + | N/A | N/A | N/A | N/A |
Styles d'intervalle
-
postgres— suit le style PostgreSQL. Il s’agit de l’option par défaut. -
postgres_verbose— suit le style détaillé de PostgreSQL. -
sql_standard— suit le style des littéraux d'intervalle standard SQL.
La commande suivante définit le style d'intervalle sursql_standard.
SET IntervalStyle to 'sql_standard';
format de sortie postgres
Le format de sortie pour le style d'postgresintervalle est le suivant. Chaque valeur numérique peut être négative.
'<numeric> <unit> [, <numeric> <unit> ...]'
select INTERVAL '1-2' YEAR TO MONTH::textvarchar --------------- 1 year 2 mons
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar ------------------ 1 day 02:03:04.5678
format de sortie postgres_verbose
La syntaxe de postgres_verbose est similaire à celle de postgres, mais les sorties postgres_verbose contiennent également l'unité de temps.
'[@] <numeric> <unit> [, <numeric> <unit> ...] [direction]'
select INTERVAL '1-2' YEAR TO MONTH::textvarchar ----------------- @ 1 year 2 mons
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar --------------------------- @ 1 day 2 hours 3 mins 4.56 secs
format de sortie sql_standard
Les valeurs d'intervalle d'une année à l'autre 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 de l'intervalle entre le jour et la seconde sont formatées comme suit.
'[-]dd hh:mm:ss.ffffff'
SELECT INTERVAL '1-2' YEAR TO MONTH::textvarchar ------- 1-2
select INTERVAL '1 2:3:4.5678' DAY TO SECOND::textvarchar --------------- 1 2:03:04.5678
Exemples de type de données d'intervalle
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 d'intervalle
Les exemples suivants sont exécutés avec le style d'intervalle défini surpostgres.
L'exemple suivant montre comment créer un littéral INTERVAL de 1 an.
select INTERVAL '1' YEARintervaly2m --------------- 1 years 0 mons
Si vous spécifiez une chaîne entre guillemets 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' YEARintervaly2m --------------- 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' MONTHintervaly2m --------------- 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, AWS Clean Rooms utilise la précision maximale de 6.
select INTERVAL '1.23456789' SECONDintervald2s ----------------------------------- 0 days 0 hours 0 mins 1.234567 secs
L'exemple suivant montre comment créer un intervalle échelonné.
select INTERVAL '2:2' MINUTE TO SECONDintervald2s ------------------------------ 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 chaîne entre guillemets de « 2:2 » que l'exemple précédent, il AWS Clean Rooms reconnaît qu'il utilise des unités de temps différentes en raison du qualificatif.
select INTERVAL '2:2' HOUR TO MINUTEintervald2s ------------------------------ 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, 5s5 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' SECONDintervald2s ------------------------------ 0 days 0 hours 0 mins 5.0 secs
select INTERVAL '5 HOURS' HOURintervald2s ------------------------------ 0 days 5 hours 0 mins 0.0 secs
select INTERVAL '5 h' HOURintervald2s ------------------------------ 0 days 5 hours 0 mins 0.0 secs