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

hvordan man kun beregner dage mellem to datoer i postgres sql-forespørgsel.

Brug ikke age() funktion til dato/tid aritmetik. Det returnerer kun "symbolske" resultater (som er gode nok til menneskelig repræsentation, men næsten meningsløse til dato/tidsberegninger; sammenlignet med standardforskellen).

Standard differenceoperatoren (- ) returnerer dagsbaserede resultater for både date , timestamp og timestamp with time zone (førstnævnte returnerer dage som int , de to sidstnævnte returnerer dagsbaseret interval s):

Fra de dagsbaserede intervaller kan du udtrække dage 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. Sådan fortsætter du Cursor Loop-behandling efter undtagelse i Oracle

  2. Hvad er din mening om at bruge tekstlige identifikatorer i tabelkolonner, når du nærmer dig databasen med normalisering og skalerbarhed i tankerne?

  3. Microsoft SQL Server 2008 Management Studio - Problem med forbindelse/server/instans

  4. hvordan man kontrollerer, om mysql-forespørgsel ikke returnerer noget resultat (record ikke fundet) ved hjælp af php?