sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo calcular solo los días entre dos fechas en la consulta sql de postgres.

No uses la age() función para la aritmética de fecha/hora. Solo devuelve resultados "simbólicos" (que son lo suficientemente buenos para la representación humana, pero casi sin sentido para los cálculos de fecha/hora, en comparación con la diferencia estándar).

El operador de diferencia estándar (- ) devuelve resultados basados ​​en días para ambos date , timestamp y timestamp with time zone (el primero devuelve días como int , los dos últimos devuelven interval basado en días s):

De los intervalos basados ​​en días puede extraer días con extract() función:

select current_date - '2017-01-01',
       extract(day from now()::timestamp - '2017-01-01 00:00:00'),
       extract(day from now()            - '2017-01-01 00:00:00Z');

http://rextester.com/RBTO71933