sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man bara beräknar dagar mellan två datum i postgres sql-frågan.

Använd inte age() funktion för datum/tid aritmetik. Den returerar bara "symboliska" resultat (som är tillräckligt bra för mänsklig representation, men nästan meningslösa för datum/tid beräkningar; jämfört med standardskillnaden).

Standard differensoperatorn (- ) returnerar dagsbaserade resultat för båda date , timestamp och timestamp with time zone (den förstnämnda returnerar dagar som int , de två sistnämnda returnerar dagsbaserat interval s):

Från de dagsbaserade intervallen kan du extrahera dagar med extract() funktion:

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



  1. Konvertera en Int till ett datumfält

  2. MySQL - hur länge ska man skapa ett index?

  3. MySQL multipla kopplingar till samma tabell

  4. Hur man installerar MySQL gem på Mac OS X