Documentation / SQL / Functions
Time Functions
This section describes functions and operators for examining and manipulating TIME values.
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 |
The table below shows the available scalar functions for TIME types.
| Name | Description |
current_time | Current time (start of current transaction) in UTC. |
date_diff(part, starttime, endtime) | The number of partition boundaries between the times. |
date_part(part, time) | Get subfield (equivalent to extract). |
date_sub(part, starttime, endtime) | The number of complete partitions between the times. |
datediff(part, starttime, endtime) | Alias of date_diff. The number of partition boundaries between the times. |
datepart(part, time) | Alias of date_part. Get subfield (equivalent to extract). |
datesub(part, starttime, endtime) | Alias of date_sub. The number of complete partitions between the times. |
extract(part FROM time) | Get subfield from a time. |
get_current_time() | Current time (start of current transaction) in UTC. |
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.
| Description | Current time (start of current transaction) in UTC. Note that parentheses should be omitted. |
| Example | current_time |
| Result | 10:31:58.578 |
| Alias | get_current_time() |
| Description | The number of partition boundaries between the times. |
| Example | date_diff('hour', TIME '01:02:03', TIME '06:01:03') |
| Result | 5 |
| Description | Get subfield (equivalent to extract). |
| Example | date_part('minute', TIME '14:21:13') |
| Result | 21 |
| Description | The number of complete partitions between the times. |
| Example | date_sub('hour', TIME '01:02:03', TIME '06:01:03') |
| Result | 4 |
| Description | Alias of date_diff. The number of partition boundaries between the times. |
| Example | datediff('hour', TIME '01:02:03', TIME '06:01:03') |
| Result | 5 |
| Description | Alias of date_part. Get subfield (equivalent to extract). |
| Example | datepart('minute', TIME '14:21:13') |
| Result | 21 |
| Description | Alias of date_sub. The number of complete partitions between the times. |
| Example | datesub('hour', TIME '01:02:03', TIME '06:01:03') |
| Result | 4 |
| Description | Get subfield from a time. |
| Example | extract('hour' FROM TIME '14:21:13') |
| Result | 14 |
| Description | Current time (start of current transaction) in UTC. |
| Example | get_current_time() |
| Result | 10:31:58.578 |
| Alias | current_time |
| Description | The time for the given parts. |
| Example | make_time(13, 34, 27.123456) |
| Result | 13:34:27.123456 |
© 2025 DuckDB Foundation, Amsterdam NL