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: