La función DATE_BIN en PostgreSQL te permite “dividir” la marca de tiempo de entrada en el intervalo especificado (el timestamp) alineado con un origen especificado. Esta función está englobada en las denominadas funciones de fecha.
Sintaxis
Escribe la siguiente sintaxis para utilizarlo:
date_bin(intervalo, fuente, origen)
- Intervalo: es una expresión de valor de tipo intervalo. Esto determina los intervalos recurrentes que se utilizan para “bin” fuente en. El intervalo debe ser mayor que cero y no puede contener unidades de mes o mayores.
- Fuente: es una expresión de valor de tipo timestamp o timestamp con zona horaria. (Los valores de tipo date se convierten automáticamente en timestamp).
- Origen: es el origen del intervalo. En otras palabras, aquí es donde comienza el intervalo recurrente.
El valor de retorno es de tipo timestamp o timestamp con zona horaria (dependiendo de los valores de entrada), y marca el inicio de la ubicación en la que se coloca la fuente.
Ejemplos
select date_bin('15 minutes', timestamp '2001-02-16 20:38:40',
timestamp '2001-02-16 20:05:00')
![Función DATE_BIN en PostgreSQL](https://www.migueltroyano.com/wp-content/uploads/2024/01/postgresql_funcion_date_bin.png)
En este otro ejemplo comprobamos cómo nos devuelve la fecha y hora ‘2022-01-01 15:00:00’ ya que se ha puesto un intervalo de 15 minutos y el valor dentro del rango más próximo a ‘2022-01-01 15:07:00’ son las tres en punto.
select date_bin('15 minutes',
TIMESTAMP '2022-01-01 15:07:00',
TIMESTAMP '2020-01-01');
![](https://www.migueltroyano.com/wp-content/uploads/2024/01/postgresql_funcion_date_bin_2.png)
En este otro ejemplo partimos de ‘2022-01-01 15:17:00’ en intervalo de 15 minutos y el resultado es ‘2022-01-01 15:15:00’
select date_bin('15 minutes',
TIMESTAMP '2022-01-01 15:17:00',
TIMESTAMP '2020-01-01');
![](https://www.migueltroyano.com/wp-content/uploads/2024/01/postgresql_funcion_date_bin_3.png)