PostgreSQL MAKE_TIMESTAMPTZ Date/Time Function



PostgreSQL MAKE_TIMESTAMPTZ Date/Time Function

The PostgreSQL MAKE_TIMESTAMPTZ function is used to create a timestamp with time zone value from specified year, month, day, hour, minute, and seconds fields. If the timezone is not specified, the current time zone is used. This function is essential for constructing timestamp with time zone values from individual components, which can be useful in various date and time-based calculations and data manipulations.


Syntax

MAKE_TIMESTAMPTZ(year int, month int, day int, hour int, min int, sec double precision [, timezone text])

The MAKE_TIMESTAMPTZ function has the following components:

  • year: The year component of the timestamp (negative years signify BC).
  • month: The month component of the timestamp.
  • day: The day component of the timestamp.
  • hour: The hour component of the timestamp.
  • min: The minute component of the timestamp.
  • sec: The seconds component of the timestamp.
  • timezone: The optional time zone for the timestamp.

Example PostgreSQL MAKE_TIMESTAMPTZ Queries

Let's look at some examples of PostgreSQL MAKE_TIMESTAMPTZ function queries:

1. Basic MAKE_TIMESTAMPTZ Example

SELECT MAKE_TIMESTAMPTZ(2013, 7, 15, 8, 15, 23.5) AS constructed_timestamptz;

This query creates a timestamp with time zone from the year 2013, month 7, day 15, hour 8, minute 15, and seconds 23.5, resulting in '2013-07-15 08:15:23.5+01' assuming the session time zone is Europe/London.

2. MAKE_TIMESTAMPTZ with Specified Time Zone

SELECT MAKE_TIMESTAMPTZ(2013, 7, 15, 8, 15, 23.5, 'America/New_York') AS constructed_timestamptz;

This query creates a timestamp with time zone from the year 2013, month 7, day 15, hour 8, minute 15, and seconds 23.5, with the time zone 'America/New_York', resulting in '2013-07-15 13:15:23.5+01' assuming the session time zone is Europe/London.

3. MAKE_TIMESTAMPTZ with Column Values

SELECT id, name, MAKE_TIMESTAMPTZ(year, month, day, hour, minute, second, timezone) AS event_timestamptz
FROM events;

This query retrieves the id, name, and constructs a timestamp with time zone from the year, month, day, hour, minute, second, and timezone columns for each row in the events table.


Full Example

Let's go through a complete example that includes creating a table, inserting data, and using the MAKE_TIMESTAMPTZ function to construct timestamp with time zone values from individual components.

Step 1: Creating a Table

This step involves creating a new table named events to store event data, including their timestamp components and time zone.

CREATE TABLE events (
    id SERIAL PRIMARY KEY,
    name TEXT,
    year INT,
    month INT,
    day INT,
    hour INT,
    minute INT,
    second DOUBLE PRECISION,
    timezone TEXT
);

In this example, we create a table named events with columns for id, name, year, month, day, hour, minute, second, and timezone.

Step 2: Inserting Data into the Table

This step involves inserting some sample data into the events table.

INSERT INTO events (name, year, month, day, hour, minute, second, timezone)
VALUES ('Meeting', 2021, 10, 31, 9, 30, 0, 'Europe/London'),
       ('Conference', 2022, 5, 15, 14, 0, 0, 'America/New_York'),
       ('Webinar', 2023, 8, 20, 11, 45, 30.75, 'Asia/Tokyo');

Here, we insert data into the events table.

Step 3: Using the MAKE_TIMESTAMPTZ Function

This step involves using the MAKE_TIMESTAMPTZ() function to construct timestamp with time zone values from the individual components in the events table.

Construct event timestamp with time zone from year, month, day, hour, minute, second, and timezone columns:

SELECT id, name, MAKE_TIMESTAMPTZ(year, month, day, hour, minute, second, timezone) AS event_timestamptz
FROM events;

This query constructs the event timestamp with time zone from the year, month, day, hour, minute, second, and timezone columns for each row in the events table.


Conclusion

The PostgreSQL MAKE_TIMESTAMPTZ() function is a fundamental tool for constructing timestamp with time zone values from individual year, month, day, hour, minute, second, and optional timezone components. Understanding how to use the MAKE_TIMESTAMPTZ() function and its syntax is essential for accurate timestamp construction in PostgreSQL databases.