Intervalo postgresql

Intervalo postgresql
PostgreSQL es un sistema popular de gestión de bases de datos relacionales. Es un software de código abierto que es popular por su estabilidad y soporte para varios estándares técnicos abiertos. Los desarrolladores de todo el mundo lo mantienen activamente de todo el mundo.

En esta guía, trabajaremos en intervalo en PostgreSQL.

Prerrequisitos:

Para realizar los pasos que se demuestran en esta guía, necesitará los siguientes componentes:

  • Un sistema de Linux concurrido correctamente. Obtenga más información sobre cómo instalar Ubuntu en Virtualbox.
  • Una instalación adecuada de PostgreSQL. Obtenga más información sobre cómo instalar PostgreSQL en Ubuntu.

Intervalo en PostgreSQL

Para almacenar y administrar los períodos de tiempo (minutos, segundos, años, etc.), PostgreSQL ofrece el tipo de datos de intervalo.

  • El tamaño del intervalo es de 16 bytes.
  • Puede almacenar valores de -178000000 años a 178000000 años.
  • Hay diferentes estilos de intervalos disponibles, por ejemplo, Postgres (predeterminado), Postgres_verbose, SQL_STANDARD, ISO_8601, etc.
  • Las operaciones aritméticas son posibles.

El tipo de intervalo es el siguiente:

$ @ intervalo

Aquí:

  • Se permite que un valor de intervalo tenga un valor de precisión P donde el valor de P puede variar de 0 a 6.
  • El signo "@" es opcional, por lo tanto, se puede omitir de manera segura.

Formatos de intervalo

Postgres_verbose
ps

Dónde:

  • Cantidad: un número que puede aceptar "+" o "-".
  • Unidad: se admiten varias unidades de tiempo. Por ejemplo: década, siglo, mes, día, semana, hora, segunda y abreviaturas (D, M, Y, etc.). Las formas plurales también son compatibles (días, meses, etc.).

Este es el formato Postgres_verbose que es común para los formatos de salida de intervalo.

ISO 8601

La estructura del formato ISO 8601 con designadores es la siguiente:

$ PT

Aquí:

  • El valor comienza con "P".
  • El valor que sigue a la "t" denota la hora del día.

Las siguientes abreviaturas de la unidad están disponibles en ISO 8601:

  • Y: años
  • METRO: meses (dentro de la sección de la fecha)
  • W: semanas
  • D: días
  • H: horas
  • METRO: Actas (dentro de la sección de tiempo)
  • S: segundos

Aquí hay un ejemplo de intervalo en formato ISO 8601 (con designadores):

$ P5Y4M3DT2H1M2S

Hay un formato alternativo de ISO 8601. La estructura es la siguiente:

$ PT

Aquí está el mismo ejemplo de intervalo en el formato alternativo ISO 8601:

$ P0005-04-03T02: 01: 02

Usando los valores de intervalo

En esta sección, demostraremos las diversas formas de usar los valores de intervalo en las consultas PostgreSQL.

Uso básico
Desde el shell PostgreSQL, ejecute la siguiente consulta:

SELECCIONAR

Ahora (), ahora () - Intervalo '1 año 3 horas 20 minutos'
Como "3 horas hace 20 minutos del año pasado";

Aquí:

  • La función Now () devuelve la fecha y hora actuales.
  • Restamos "1 año 3 horas 20 minutos" a partir de ahora () para obtener el valor deseado.
  • Usando la instrucción AS, especificamos un nombre para la segunda columna de la salida.

Formatos de salida de intervalo

En PostgreSQL, podemos especificar el formato de salida de un valor de intervalo utilizando el siguiente comando:

$ Set intervalstyle = '';

Hay un par de formatos disponibles:

  • sql_standard
  • post -put
  • Postgres_verbose
  • ISO_8601

Ponamos este comando en acción. Las siguientes consultas muestran la salida del intervalo en diferentes formatos:

Establecer intervalStyle = 'sql_standard';
Seleccione el intervalo '5 años 4 meses 3 días 2 horas 1 minutos 2 segundos';
Establecer intervalStyle = 'Postgres';
Seleccione el intervalo '5 años 4 meses 3 días 2 horas 1 minutos 2 segundos';
Establecer intervalStyle = 'postgres_verbose';
Seleccione el intervalo '5 años 4 meses 3 días 2 horas 1 minutos 2 segundos';
Establecer intervalStyle = 'ISO_8601';
Seleccione el intervalo '5 años 4 meses 3 días 2 horas 1 minutos 2 segundos';

Intervalo operadores aritméticos

Es posible aplicar las operaciones aritméticas (+, -, *) en los valores de intervalo. Las siguientes consultas demuestran esta característica:

SELECCIONAR

Intervalo '3h 50m' + intervalo '10m';

SELECCIONAR

Intervalo '9h 50m' - intervalo '50m';

SELECCIONAR

3600 * intervalo '1 minuto';

Convertir intervalo a cadena

Con la ayuda de la función to_char (), podemos convertir el valor del intervalo a una cadena. La estructura de to_char () es la siguiente:

$ To_char (, );

Aquí:

  • El primer argumento es el valor del intervalo a transformar. Puede estar en cualquier formato de intervalo.
  • El segundo argumento describe el formato de la salida.

La siguiente consulta demuestra un ejemplo simple de convertir un intervalo en formato ISO 8601 a una cadena simple:

SELECCIONAR
To_char (
Intervalo 'P0005-04-03T02: 01: 02',
'HH24: MI: SS'
);

Extracción de datos del intervalo

Con la ayuda de la función extracto (), podemos extraer el contenido de un campo específico desde un valor de intervalo. La estructura de comando de extracto () en tándem con intervalo es la siguiente:

$ Extracto ( DE );

Aquí:

  • campo: El campo a extraer del intervalo. Por ejemplo: segundos, actas, horas, fecha, mes, año, etc.
  • intervalo: El valor del intervalo.

Vamos a poner la función extracto () en acción. En el siguiente ejemplo, extraemos el campo minuto de un valor de intervalo:

SELECCIONAR

EXTRACTO (
MINUTO
DE
Intervalo 'P0005-04-03T02: 01: 02'

Ajuste del valor del intervalo

Las funciones justify_days () y justify_hours () pueden convertir los intervalos de 30 días a 1 mes y 24 horas a 1 día, respectivamente.

La siguiente consulta demuestra el uso de estas funciones:

SELECCIONAR

justify_days (intervalo '90 días '),
justify_hours (intervalo '72 horas ');

Conclusión

Pasamos por la función de intervalo en PostgreSQL. Esta guía elabora en varios formatos de intervalos compatibles. También muestra las diversas formas de implementar el intervalo en consultas. Finalmente, también exploramos las diversas funciones PostgreSQL que traducen/transforman el valor de intervalo en los formatos especificados.

Necesita interactuar con PostgreSQL a través de una red? Hay varias GUI postgreSQL disponibles que pueden conectarse a un servidor remoto y administrarlo sin esfuerzo. Además de las funciones incorporadas, PostgreSQL también admite las funciones definidas por el usuario.