Saltar al contenido

Sumar horas en postgresql

Sumar horas en Postgresql a un campo tipo fecha o tipo tiempo, ya conocemos funciones trabajar formatos fechas pero en este caso estariamos trabajando con los campos timestamp para sumar o restar fechas en postgresql, horas incluso minutos lo cual sera una tarea sumanmente facil. En Postgresql podemos crear un campo calculado de expresión para crear una consulta que incremente la horas de tu columna de fecha dentro de tu tabla.

En este articulo podrias aprender como adicionar minutos a una columna o como restar horas a una fecha desde Postgresql. Por lo cual te recomiendo ver este articulo hasta el final!!

Índice

    Requisitos recomendados

    Para estos ejemplos te recomiendo instalar Pgadmin pero igualmente existen otros GUI muy recomendados para trabajar con postgresql que puede ser muy utiles. Es importante tener tu pgadmin abierto y hacer clic en nueva consulta para poder hacer estos ejercicios o si deseas tambien te recomiendo hedisql la cual te puede ayudar a trabajar estos ejemplos.

    Columna calculada inverval PostgreSQL

    El tipo de datos de intervalo le permite almacenar y manipular un período de tiempo en años, meses, días, horas, minutos, segundos, etc.

    A continuación se ilustra el tipo de intervalo:

    @ intervalo [ campos ] [ (p) ]


    Lenguaje de código: SQL (lenguaje de consulta estructurado) (sql) Un valor de intervalo requiere un tamaño de almacenamiento de 16 bytes que puede almacenar un período con el rango permitido de -178 000 000 años a 178 000 000 años.

    Además, un valor de intervalo puede tener un valor de precisión opcional p con el rango permitido de 0 a 6. La precisión p es el número de dígitos de fracción retenidos en el segundo campo.

    El signo de arroba ( @) es opcional, por lo que puede omitirlo para obtener el resultado solo debes ejecutar la consulta dentro de tu interfaz grafica seleccionada.

    Los siguientes ejemplos muestran algunos valores de intervalo:

    • interval ‘1 months ago’;
    • interval ‘4 hours 20 minutes’;

    Lenguaje de código: SQL (lenguaje de consulta estructurado) (sql) Internamente, PostgreSQL almacena valores de intervalo como meses, días y segundos. Los valores de meses y días son números enteros, mientras que el campo de segundos puede tener fracciones.

    Los valores de intervalo son muy útiles al hacer aritmética de fecha u hora con esta funcion podras sumar dias a una fecha postgresql y restar dias a una fecha postgresql de forma mas efectiva.

    Función interval en postgresql

    Al igual que en mysql con la funcion addtime, Postgresql posee una función para trabajar con horas , minutos y segundos e incluso dias, Para esto debemos conocer la función integrada interval. Con el pgadmin podras realizar las consultas ademas descargar la base de Base de datos Northwind para Postgresql disponible aqui para iniciar.

    La sintaxis para sumar tiempo es la siguiente:

    SELECT COLUMNA OPERACION(+ O -) INTERVAL 'hora:minuto:segundo'

    • Donde inteval especifina la cantidad de horas , minutos y segundos que deseamos agregar tomando en cuenta que los parametros deben ser pasados entre comilla simple.
    • En este caso columna representa la columna que debera ser incrementada
    • operacion representa el simbolo de mas o menos que se utilizara par incrementar o reducir la hora

    Como sumar tiempo horas y minutos en postgresql?

    Tomando la sintaxis anterior estaremos presentado un ejemplo para adicionar 2 horas y 30 minutos a una columna de tiempo, la cual debe ser una columna del tipo de dato valido de tiempo time.

    Ejemplo

    SELECT hora_columna + INTERVAL '2:30'  
    FROM tabla
    

    También puede usar la función time para crear una columna calculada con el tiempo a partir de una cadena de texto. Por ejemplo, si tiene una cadena de texto que representa una hora, como ’15:30:00′, puede convertirla en una columna de tiempo y luego sumarle una cantidad de tiempo usando la función interval:

    SELECT TIME '15:30:00' + INTERVAL '2:30' Sumando horas y minutos
    

    Esto devolverá un valor de tiempo de ’18:00:00′.

    Para este caso el simbolo de suma fue utlizado para sumar tiempo a la hora.

    Como restar fechas en postgresql?

    Al igual que incrementamos la hora tambien podemos crear una columna calculada para restar un intervalo de tiempo utilizando la función interval. Para esto ejemplo vamos a utilizar la funcion TIME para convertir una cadena de texto en hora y reducirl dos horas.

    Ver como se Deberia ejecutar restar fechas en postgresql

    SELECT TIME '15:30:00' - INTERVAL '2:30' HOUR TO MINUTE
    

    Esto devolverá un valor de tiempo de ’13:00:00′.

    Debemos tomar en cuenta que el signo negativo antes del intervalo indica que se está restando tiempo en lugar de agregarlo. asi podemos restar dias a una fecha postgresql incluso horas.

    Sumar horas y dias a un campo fecha en postgresql

    Sumar una cantidad de tiempo a un campo de tipo fecha en PostgreSQL, primero debe convertir la fecha en un timestamp utilizando la función to_timestamp. Luego, puede agregar un intervalo de tiempo usando la función interval.

    Por ejemplo, si desea agregar 2 días y 3 horas a una columna de fecha, puede usar la siguiente consulta:

    SELECT fecha_columna + INTERVAL '2 days 3 hours'
    FROM tabla
    

    También puede usar la función timestamp para crear un timestamp a partir de una cadena de texto que representa una fecha y hora. Por ejemplo, si tiene una cadena de texto que representa una fecha y hora, como ‘2022-01-01 15:30:00’, puede convertirla en un timestamp y luego sumarle una cantidad de tiempo usando la función interval:

    SELECT TIMESTAMP '2022-01-01 15:30:00' + INTERVAL '2 days 3 hours'
    

    Esto devolverá un valor de timestamp que representa la fecha y hora original más 2 días y 3 horas. Tenga en cuenta que la función interval también admite otras unidades de tiempo, como minutos, segundos y milisegundos, y puede combinar múltiples unidades en una sola expresión.

    Como sumar horas a un campo fecha ?

    En ocasiones solo necesitamos incrementar la hora en un campo de tipo fecha en PostgreSQL, puede usar la función interval y establecer el número de días en cero.

    Por ejemplo, si desea agregar 3 horas a una columna de fecha, puede usar la siguiente consulta:

    SELECT fecha_columna + INTERVAL '0 days 3 hours'
    FROM tabla
    

    También puede utilizar la abreviatura HOUR en lugar de hours, lo que hace que la consulta sea más legible:

    SELECT fecha_columna + INTERVAL '0 hours 3 minutes'
    FROM tabla
    

    En este caso, se está agregando un intervalo de 3 horas a la columna de fecha. Tenga en cuenta que, si la hora resultante supera las 23:59, la fecha también se ajustará automáticamente en consecuencia.

    Conclusion

    La función interval es una función integrada en PostgreSQL que ha estado disponible desde versiones antiguas de PostgreSQL, por lo que debería ser compatible con la mayoría de las versiones de PostgreSQL. A diferencia de sql server que utiliza la funcion dateadd la cual no es una funcion especilizada para estos fines.

    En general, la función interval es compatible con la mayoría de las versiones de PostgreSQL, pero es posible que deba verificar la documentación específica de su versión de PostgreSQL para obtener información detallada sobre su uso y sintaxis.

    hasta la proxima gracias :D!!