PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

come calcolare solo i giorni tra due date nella query sql di postgres.

Non utilizzare age() funzione per aritmetica data/ora. restituisce solo risultati "simbolici" (che sono abbastanza buone per la rappresentazione umana, ma quasi prive di significato per i calcoli di data/ora; rispetto alla differenza standard).

L'operatore di differenza standard (- ) restituisce risultati giornalieri per entrambi date , timestamp e timestamp with time zone (il primo restituisce i giorni come int , gli ultimi due restituiscono un interval basato su giorni s):

Dagli intervalli basati sui giorni puoi estrarre i giorni con extract() funzione:

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