Time Functions
This section describes functions and operators for examining and manipulating TIME values.
Time Operators
The table below shows the available mathematical operators for TIME types.
| Operator | Description | Example | Result |
|---|---|---|---|
+ | addition of an INTERVAL | TIME '01:02:03' + INTERVAL 5 HOUR | 06:02:03 |
- | subtraction of an INTERVAL | TIME '06:02:03' - INTERVAL 5 HOUR | 01:02:03 |
Time Functions
The table below shows the available scalar functions for TIME types.
| Name | Description |
|---|---|
date_diff(part, starttime, endtime) | The number of part boundaries between starttime and endtime, inclusive of the larger time and exclusive of the smaller time. |
date_part(part, time) | Get subfield (equivalent to extract). |
date_sub(part, starttime, endtime) | The signed length of the interval between starttime and endtime, truncated to whole multiples of part. |
extract(part FROM time) | Get subfield from a time. |
get_current_time() | Current time (start of current transaction). |
make_time(bigint, bigint, double) | The time for the given parts. |
The only date parts that are defined for times are epoch, hours, minutes, seconds, milliseconds and microseconds.
date_diff(part, starttime, endtime)
The number of part boundaries between starttime and endtime, inclusive of the larger time and exclusive of the smaller time. Alias: datediff.
Query
SELECT date_diff('hour', TIME '01:02:03', TIME '06:01:03') AS date_diff;Result
date_diff----------- 5date_part(part, time)
Get subfield (equivalent to extract). Alias: datepart.
Query
SELECT date_part('minute', TIME '14:21:13') AS date_part;Result
date_part----------- 21date_sub(part, starttime, endtime)
The signed length of the interval between starttime and endtime, truncated to whole multiples of part. Alias: datesub.
Query
SELECT date_sub('hour', TIME '01:02:03', TIME '06:01:03') AS date_sub;Result
date_sub---------- 4extract(part FROM time)
Get subfield from a time.
Query
SELECT extract('hour' FROM TIME '14:21:13') AS extract;Result
extract--------- 14get_current_time()
| Description | Current time (start of current transaction) in the local time zone as TIMETZ. |
|---|---|
| Example | get_current_time() |
| Result | 06:09:59.988+2 |
| Alias | current_time (no parentheses necessary) |
make_time(bigint, bigint, double)
The time for the given parts.
Query
SELECT make_time(13, 34, 27.123456) AS make_time;Result
make_time----------------- 13:34:27.123456