How to Get the Unix Timestamp in PostgreSQL

The “UNIX TIMESTAMP” also known as the “Unix Epoch” or “POSIX” represents a DateTime in seconds, elapsed since 00:00:00 UTC, January 1, 1970. Database users may need to retrieve the UNIX timestamp when manipulating the date and time values. In such situations, the EXTRACT() and DATE_PART() functions can be used with the EPOCH argument.

This post illustrates a practical guide to getting the Unix TIMESTAMP in Postgres via the EXTRACT() and DATE_PART() functions.

How to Get the Unix Timestamp in Postgres?

Pass the EPOCH argument to the EXTRACT() function or the DATE_PART() function to get a timestamp in Unix format.

The below syntax explains how to get a Unix timestamp using the EXTRACT() function:

EXTRACT(EPOCH FROM 'timestamp');

The below snippet demonstrates how to get a Unix timestamp using the DATE_PART() function:

DATE_PART('EPOCH', 'timestamp');

Let’s put these concepts into practice!

Example 1: How to Get Unix Timestamp From Current Timestamp

In Postgres, the CURRENT_TIMESTAMP function returns the current DateTime. However, passing EPOCH and the CURRENT_TIMESTAMP as arguments to the EXTRACT() function will retrieve the current DateTime as Unix Timestamp:

SELECT CURRENT_TIMESTAMP, 
EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) As Unix_timestamp;
img

Alternatively, you can use the DATE_PART() function to get the Unix Timestamp from the current timestamp:

SELECT CURRENT_TIMESTAMP, 
DATE_PART('EPOCH', CURRENT_TIMESTAMP) As Unix_timestamp;
img

Example 2: How to Get Unix Timestamp From a Specific Timestamp

The EXTRACT() function and the DATE_PART() function assist us in getting the Unix timestamp from a specific timestamp:

SELECT DATE_PART('EPOCH', TIMESTAMP '2020-12-11 02:12:16.906072'),
EXTRACT('EPOCH' FROM TIMESTAMP '2020-12-11 02:12:16.906072');
img

This way, you can get a Unix timestamp from a specific timestamp using the EXTRACT() and DATE_PART() functions.

Example 3: How to Get Unix Timestamp From a Specific TIMESTAMPTZ

Similarly, you can use the EXTRACT() or DATE_PART() functions to get the Unix timestamp from a “timestamp with a time zone”:

SELECT DATE_PART('EPOCH', TIMESTAMP '2020-12-11 02:12:16.906072-08'),
EXTRACT('EPOCH' FROM TIMESTAMP '2020-12-11 02:12:16.906072-08');
img

Example 4: How to Get Unix Timestamp From Current Date

To get a Unix timestamp from the current date or a specific date, the EXTRACT() or DATE_PART() functions can be used as follows:

SELECT DATE_PART('EPOCH', CURRENT_DATE),
EXTRACT('EPOCH' FROM DATE '2020-12-11');
img

The Unix timestamp is extracted from the current date using the DATE_PART() function. While the Unix timestamp is extracted from a specific date using the EXTRACT() function.

Example 5: How to Get Unix Timestamp From an Interval

In the following example, the DATE_PART() and EXTRACT() functions are used to get the Unix timestamp from a specific interval:

SELECT DATE_PART('EPOCH', INTERVAL '1 Month 2 Days'),
EXTRACT('EPOCH' FROM INTERVAL '1 Month 2 Days');
img

That’s all from this post.

Conclusion

To get the Unix Timestamp in PostgreSQL, the EXTRACT() and DATE_PART() functions are used with the EPOCH argument. Using these functions, a user can get a Unix timestamp from a date, interval, or timestamp. To do that, pass the EPOCH as a first argument to the EXTRACT() function or the DATE_PART() function and a date, interval, or timestamp as the second argument to get a timestamp in Unix format. This post explained various methods to return a Unix timestamp in PostgreSQL.