Jangan gunakan age()
fungsi untuk aritmatika tanggal/waktu. Hanya mengembalikan hasil "simbolis"
(yang cukup baik untuk representasi manusia, tetapi hampir tidak berarti untuk perhitungan tanggal/waktu; dibandingkan dengan perbedaan standar).
Standar operator perbedaan (-
)
mengembalikan hasil berbasis hari untuk date
, timestamp
dan timestamp with time zone
(yang sebelumnya mengembalikan hari sebagai int
, dua yang terakhir mengembalikan interval
. berbasis hari s):
Dari interval berbasis hari, Anda dapat mengekstrak hari dengan extract()
fungsi:
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