Skip to main content

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.

OperatorDescriptionExampleResult
+addition of an INTERVALTIME '01:02:03' + INTERVAL 5 HOUR06:02:03
-subtraction of an INTERVALTIME '06:02:03' - INTERVAL 5 HOUR01:02:03

Time Functions

The table below shows the available scalar functions for TIME types.

NameDescription
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-----------         5

date_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-----------        21

date_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----------        4

extract(part FROM time)

Get subfield from a time.

Query
SELECT extract('hour' FROM TIME '14:21:13') AS extract;
Result
 extract---------      14

get_current_time()

DescriptionCurrent time (start of current transaction) in the local time zone as TIMETZ.
Exampleget_current_time()
Result06:09:59.988+2
Aliascurrent_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

This page contains: