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