sql >> Databáze >  >> RDS >> PostgreSQL

jak vypočítat pouze dny mezi dvěma daty v dotazu postgres sql.

Nepoužívejte age() funkce pro aritmetiku data/času. Pouze vrací „symbolické“ výsledky (které jsou dost dobré pro lidskou reprezentaci, ale téměř bezvýznamné pro výpočty data/času; ve srovnání se standardním rozdílem).

Standardní diferenční operátor (- ) vrátí výsledky založené na dnech pro oba date , timestamp a timestamp with time zone (první vrátí dny jako int , poslední dva vrátí interval na základě dne s):

Z denních intervalů můžete extrahovat dny pomocí extract() funkce:

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. Jak změnit referenční akci cizího klíče? (chování)

  2. Vrátí N sloupců z tabulkové funkce

  3. Chrání mysql_real_escape_string() PLNĚ před SQL injection?

  4. Jak poslat e-mailem výsledky dotazu na SQL Server (T-SQL)