Epoch : The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z). Literally speaking the epoch is Unix time 0 (midnight 1/1/1970), but ‘epoch’ is often used as a synonym for ‘Unix time’. Many Unix systems store epoch dates as a signed 32-bit integer, which might cause problems on January 19, 2038 (known as the Year 2038 problem or Y2038). Source
Converting Formatted Date (yyyymmdd hh:mm:ss) to epoch in PostgreSQL :
select extract(epoch from to_timestamp('2018-08-06 13:30:37', 'YYYY-MM-DD HH24:MI:SS')) * 1000;
Result :
1533537037000
Converting epoh to Formatted Date (yyyymmdd hh:mm:ss) in PostgreSQL :
select to_char( to_timestamp(1533537037000 / 1000), 'YYYY-MM-DD HH24:MI:SS');
Result :
2018-08-06 13:30:37
Another Example :
I would like to find the data from particular table which have created_date epoch less than particular formatted date :
select code, shift_name, to_char( to_timestamp(created_date / 1000), 'YYYY-MM-DD HH24:MI:SS') from internal_shift where created_date < ( select extract(epoch from to_timestamp('2018-08-06 11:00:37', 'YYYY-MM-DD HH24:MI:SS')) * 1000 );