Lorsque vous travaillez avec l'intervalle type de données dans PostgreSQL, vous pouvez modifier la façon dont la sortie de l'intervalle est formatée.
Vous avez le choix entre quatre formats dans lesquels vos intervalles peuvent être sortis.
Le format de sortie du type d'intervalle peut être défini sur l'un des styles suivants :
sql_standard
postgres
postgres_verbose
iso_8601
Le style par défaut est postgres
.
Pour changer votre format d'intervalle, utilisez le SET intervalstyle
commande.
Exemples
Les exemples suivants illustrent la sortie de make_interval()
lors de l'utilisation des différents styles de sortie.
sql_standard
Ce style est conforme à la spécification de la norme SQL pour les chaînes littérales d'intervalle, si la valeur de l'intervalle respecte les restrictions de la norme (soit année-mois uniquement, soit jour uniquement, sans mélange de composants positifs et négatifs).
Sinon, la sortie ressemble à une chaîne littérale année-mois standard suivie d'une chaîne littérale jour-heure, avec des signes explicites ajoutés pour lever l'ambiguïté des intervalles de signes mixtes.
Voici un exemple utilisant l'année-mois.
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);
Résultat :
1-2
Ci-dessous un autre exemple. Cette fois, je précise les années, les mois, les semaines, les jours, les heures, les minutes et les secondes.
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Résultat :
+1-2 +25 +5:06:07
postgres
postgress
est le paramètre par défaut.
Ce style correspond à la sortie des versions de Postgres antérieures à 8.4 lorsque le DateStyle
le paramètre a été défini sur ISO
.
SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Résultat :
1 year 2 mons 25 days 05:06:07
postgres_verbose
Ce style correspond à la sortie des versions de Postgres antérieures à 8.4 lorsque le DateStyle
le paramètre a été défini sur non-ISO
sortie.
SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Résultat :
@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs
iso_8601
Ce style correspond au "format avec désignateurs" décrit dans la section 4.4.3.2 de la norme ISO 8601.
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Résultat :
P1Y2M25DT5H6M7S