PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment définir le format de sortie d'intervalle dans PostgreSQL

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