PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como calcular apenas dias entre duas datas na consulta sql postgres.


Não use o age() função para aritmética de data/hora. Ele apenas retorna resultados "simbólicos" (que são bons o suficiente para representação humana, mas quase sem sentido para cálculos de data/hora; em comparação com a diferença padrão).

O operador de diferença padrão (- ) retorna resultados baseados em dia para date , timestamp e timestamp with time zone (o primeiro retorna dias como int , os dois últimos retornam interval baseado em dia s):

A partir dos intervalos baseados em dias, você pode extrair dias com o extract() função:
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