Intervalle postgresql

Intervalle postgresql
PostgreSQL est un système de gestion de base de données relationnel populaire. C'est un logiciel open source qui est populaire pour sa stabilité et sa prise en charge pour diverses normes techniques ouvertes. Il est activement maintenu par des développeurs du monde entier.

Dans ce guide, nous travaillerons sur l'intervalle dans PostgreSQL.

Conditions préalables:

Pour effectuer les étapes qui sont démontrées dans ce guide, vous aurez besoin des composants suivants:

  • Un système Linux correctement configuré. En savoir plus sur l'installation d'Ubuntu dans VirtualBox.
  • Une installation appropriée de PostgreSQL. En savoir plus sur l'installation de PostgreSQL sur Ubuntu.

Intervalle dans PostgreSQL

Pour stocker et gérer les périodes (minutes, secondes, années, etc.), PostgreSQL offre le type de données d'intervalle.

  • La taille de l'intervalle est de 16 octets.
  • Il peut stocker des valeurs de -178000000 ans à 178000000 ans.
  • Différents styles d'intervalle sont disponibles, par exemple, Postgres (par défaut), Postgres_verbose, SQL_STANDARD, ISO_8601, etc.
  • Les opérations arithmétiques sont possibles.

Le type d'intervalle est le suivant:

$ @ intervalle

Ici:

  • Une valeur d'intervalle est autorisée à avoir une valeur de précision P où la valeur de P peut aller de 0 à 6.
  • Le signe «@» est facultatif, donc peut être omis en toute sécurité.

Formats d'intervalle

postgres_verbose
$

Où:

  • Quantité: un nombre qui peut accepter «+» ou «-».
  • Unité: diverses unités de temps sont prises en charge. Par exemple: décennie, siècle, mois, jour, semaine, heure, deuxième et abréviations (D, M, Y, etc.). Les formulaires pluriels sont également soutenus (jours, mois, etc.).

Ceci est le format postgres_verbose qui est courant pour les formats de sortie d'intervalle.

ISO 8601

La structure du format ISO 8601 avec les désignateurs est la suivante:

$ PT

Ici:

  • La valeur commence par «p».
  • La valeur suivant le «T» indique l'heure de la journée.

Les abréviations unitaires suivantes sont disponibles dans ISO 8601:

  • Y: années
  • M: mois (dans la section Date)
  • W: semaines
  • D: jours
  • H: heures
  • M: Minutes (dans la section des délais)
  • S: secondes

Voici un exemple d'intervalle au format ISO 8601 (avec des concepteurs):

$ P5Y4M3DT2H1M2S

Il y a un alternative de format d'ISO 8601. La structure est la suivante:

$ PT

Voici le même exemple d'intervalle au format alternatif ISO 8601:

$ P0005-04-03T02: 01: 02

En utilisant les valeurs d'intervalle

Dans cette section, nous démontrerons les différentes façons d'utiliser les valeurs d'intervalle dans les requêtes PostgreSQL.

Utilisation de base
Dans le shell PostgreSQL, exécutez la requête suivante:

SÉLECTIONNER

Maintenant (), maintenant () - intervalle '1 an 3 heures 20 minutes'
Comme "3 heures il y a 20 minutes de l'année dernière";

Ici:

  • La fonction maintenant () renvoie la date et l'heure actuelles.
  • Nous soustrayons «1 an 3 heures 20 minutes» à partir de maintenant () pour obtenir la valeur souhaitée.
  • En utilisant l'instruction AS, nous spécifions un nom pour la deuxième colonne de la sortie.

Formats de sortie d'intervalle

Dans PostgreSQL, nous pouvons spécifier le format de sortie d'une valeur d'intervalle en utilisant la commande suivante:

$ Set interalstyle = '';

Il y a quelques formats disponibles:

  • sql_standard
  • postgres
  • postgres_verbose
  • ISO_8601

Mettons cette commande en action. Les requêtes suivantes montrent la sortie d'intervalle dans différents formats:

Set interalstyle = 'sql_standard';
Sélectionner l'intervalle «5 ans 4 mois 3 jours 2 heures 1 minutes 2 secondes»;
Définir IntercalStyle = 'Postgres';
Sélectionner l'intervalle «5 ans 4 mois 3 jours 2 heures 1 minutes 2 secondes»;
Set interalstyle = 'postgres_verbose';
Sélectionner l'intervalle «5 ans 4 mois 3 jours 2 heures 1 minutes 2 secondes»;
Set interalstyle = 'ISO_8601';
Sélectionner l'intervalle «5 ans 4 mois 3 jours 2 heures 1 minutes 2 secondes»;

Opérateurs arithmétiques intervalles

Il est possible d'appliquer les opérations arithmétiques (+, -, *) sur les valeurs d'intervalle. Les requêtes suivantes montrent cette fonctionnalité:

SÉLECTIONNER

Intervalle '3h 50m' + intervalle '10m';

SÉLECTIONNER

Intervalle '9h 50m' - intervalle '50m';

SÉLECTIONNER

3600 * intervalle «1 minute»;

Conversion d'intervalle en chaîne

À l'aide de la fonction TO_CHAR (), nous pouvons convertir la valeur de l'intervalle en une chaîne. La structure de TO_CHAR () est la suivante:

$ To_char (, ));

Ici:

  • Le premier argument est la valeur d'intervalle à transformer. Il peut être dans n'importe quel format d'intervalle.
  • Le deuxième argument décrit le format de la sortie.

La requête suivante montre un exemple simple de conversion d'un intervalle au format ISO 8601 en une simple chaîne:

SÉLECTIONNER
To_char (
Interval 'P0005-04-03T02: 01: 02',
'HH24: MI: SS'
));

Extraction de données à partir d'intervalle

À l'aide de la fonction extrait (), nous pouvons extraire le contenu d'un champ spécifique à partir d'une valeur d'intervalle. La structure de commande d'extrait () en tandem avec intervalle est la suivante:

$ Extrait ( DEPUIS ));

Ici:

  • champ: Le champ à extraire de l'intervalle. Par exemple: secondes, minutes, heures, date, mois, année, etc.
  • intervalle: La valeur d'intervalle.

Mettons la fonction extrait () en action. Dans l'exemple suivant, nous extraissons le champ minute d'une valeur d'intervalle:

SÉLECTIONNER

EXTRAIT (
MINUTE
DEPUIS
Interval 'P0005-04-03T02: 01: 02'

Ajustement de la valeur d'intervalle

Les fonctions Justify_days () et Justify_Hours () peuvent convertir les intervalles de 30 jours en 1 mois et 24 heures à 1 jour, respectivement.

La requête suivante montre l'utilisation de ces fonctions:

SÉLECTIONNER

Justify_Days (Interval '90 Days '),
Justify_Hours (Interval '72 Hours ');

Conclusion

Nous avons passé en revue la fonction d'intervalle dans PostgreSQL. Ce guide élabore sur divers formats d'intervalle pris en charge. Il présente également les différentes façons de mettre en œuvre l'intervalle dans les requêtes. Enfin, nous avons également exploré les différentes fonctions postgresql qui traduisent / transforment la valeur d'intervalle dans les formats spécifiés.

Besoin d'interagir avec PostgreSQL sur un réseau? Il existe diverses GUIS postgresql disponibles qui peuvent se connecter à un serveur distant et le gérer sans effort. Outre les fonctions intégrées, PostgreSQL prend également en charge les fonctions définies par l'utilisateur.