Search Shortcut cmd + k | ctrl + k
Search
cmd+k
ctrl+k
- Installation
- Documentation
- Getting Started
- Connect
- Data Import
- Overview
- CSV Files
- JSON Files
- Multiple Files
- Parquet Files
- Partitioning
- Appender
- INSERT Statements
- Client APIs
- Overview
- C
- Overview
- Startup
- Configuration
- Query
- Data Chunks
- Vectors
- Values
- Types
- Prepared Statements
- Appender
- Table Functions
- Replacement Scans
- API Reference
- C++
- CLI
- Go
- Java
- Julia
- Node.js
- Python
- Overview
- Data Ingestion
- Conversion between DuckDB and Python
- DB API
- Relational API
- Function API
- Types API
- Expression API
- Spark API
- API Reference
- Known Python Issues
- R
- Rust
- Swift
- Wasm
- ADBC
- ODBC
- SQL
- Introduction
- Statements
- Overview
- ANALYZE
- ALTER TABLE
- ALTER VIEW
- ATTACH / DETACH
- CALL
- CHECKPOINT
- COMMENT ON
- COPY
- CREATE INDEX
- CREATE MACRO
- CREATE SCHEMA
- CREATE SECRET
- CREATE SEQUENCE
- CREATE TABLE
- CREATE VIEW
- CREATE TYPE
- DELETE
- DESCRIBE
- DROP
- EXPORT / IMPORT DATABASE
- INSERT
- PIVOT
- Profiling
- SELECT
- SET / RESET
- SET VARIABLE
- SUMMARIZE
- Transaction Management
- UNPIVOT
- UPDATE
- USE
- VACUUM
- LOAD / INSTALL
- Query Syntax
- SELECT
- FROM & JOIN
- WHERE
- GROUP BY
- GROUPING SETS
- HAVING
- ORDER BY
- LIMIT and OFFSET
- SAMPLE
- Unnesting
- WITH
- WINDOW
- QUALIFY
- VALUES
- FILTER
- Set Operations
- Prepared Statements
- Data Types
- Overview
- Array
- Bitstring
- Blob
- Boolean
- Date
- Enum
- Interval
- List
- Literal Types
- Map
- NULL Values
- Numeric
- Struct
- Text
- Time
- Timestamp
- Time Zones
- Union
- Typecasting
- Expressions
- Overview
- CASE Statement
- Casting
- Collations
- Comparisons
- IN Operator
- Logical Operators
- Star Expression
- Subqueries
- Functions
- Overview
- Aggregate Functions
- Array Functions
- Bitstring Functions
- Blob Functions
- Date Format Functions
- Date Functions
- Date Part Functions
- Enum Functions
- Interval Functions
- Lambda Functions
- List Functions
- Map Functions
- Nested Functions
- Numeric Functions
- Pattern Matching
- Regular Expressions
- Struct Functions
- Text Functions
- Time Functions
- Timestamp Functions
- Timestamp with Time Zone Functions
- Union Functions
- Utility Functions
- Window Functions
- Constraints
- Indexes
- Meta Queries
- DuckDB's SQL Dialect
- Samples
- Configuration
- Extensions
- Overview
- Core Extensions
- Community Extensions
- Working with Extensions
- Versioning of Extensions
- Arrow
- AutoComplete
- AWS
- Azure
- Delta
- Excel
- Full Text Search
- httpfs (HTTP and S3)
- Iceberg
- ICU
- inet
- jemalloc
- JSON
- MySQL
- PostgreSQL
- Spatial
- SQLite
- Substrait
- TPC-DS
- TPC-H
- VSS
- Guides
- Overview
- Data Viewers
- Database Integration
- File Formats
- Overview
- CSV Import
- CSV Export
- Directly Reading Files
- Excel Import
- Excel Export
- JSON Import
- JSON Export
- Parquet Import
- Parquet Export
- Querying Parquet Files
- Network & Cloud Storage
- Overview
- HTTP Parquet Import
- S3 Parquet Import
- S3 Parquet Export
- S3 Iceberg Import
- S3 Express One
- GCS Import
- Cloudflare R2 Import
- DuckDB over HTTPS / S3
- Meta Queries
- Describe Table
- EXPLAIN: Inspect Query Plans
- EXPLAIN ANALYZE: Profile Queries
- List Tables
- Summarize
- DuckDB Environment
- ODBC
- Performance
- Overview
- Import
- Schema
- Indexing
- Environment
- File Formats
- How to Tune Workloads
- My Workload Is Slow
- Benchmarks
- Python
- Installation
- Executing SQL
- Jupyter Notebooks
- SQL on Pandas
- Import from Pandas
- Export to Pandas
- Import from Numpy
- Export to Numpy
- SQL on Arrow
- Import from Arrow
- Export to Arrow
- Relational API on Pandas
- Multiple Python Threads
- Integration with Ibis
- Integration with Polars
- Using fsspec Filesystems
- SQL Editors
- SQL Features
- Snippets
- Glossary of Terms
- Browse Offline
- Operations Manual
- Overview
- Limits
- Non-Deterministic Behavior
- DuckDB's Footprint
- Securing DuckDB
- Development
- DuckDB Repositories
- Testing
- Overview
- sqllogictest Introduction
- Writing Tests
- Debugging
- Result Verification
- Persistent Testing
- Loops
- Multiple Connections
- Catch
- Profiling
- Release Calendar
- Building
- Overview
- Build Instructions
- Build Configuration
- Building Extensions
- Supported Platforms
- Troubleshooting
- Benchmark Suite
- Internals
- Sitemap
- Why DuckDB
- Media
- FAQ
- Code of Conduct
- Live Demo
Documentation
/ SQL
/ Functions
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 |
---|---|
current_time |
Current time (start of current transaction). |
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). |
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
.
current_time
Description | Current time (start of current transaction). Note that parentheses should be omitted. |
Example | current_time |
Result | 10:31:58.578 |
Alias | get_current_time() |
date_diff(part, starttime, endtime)
Description | The number of partition boundaries between the times. |
Example | date_diff('hour', TIME '01:02:03', TIME '06:01:03') |
Result | 5 |
date_part(part, time)
Description | Get subfield (equivalent to extract ). |
Example | date_part('minute', TIME '14:21:13') |
Result | 21 |
date_sub(part, starttime, endtime)
Description | The number of complete partitions between the times. |
Example | date_sub('hour', TIME '01:02:03', TIME '06:01:03') |
Result | 4 |
datediff(part, starttime, endtime)
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 |
datepart(part, time)
Description | Alias of date_part. Get subfield (equivalent to extract ). |
Example | datepart('minute', TIME '14:21:13') |
Result | 21 |
datesub(part, starttime, endtime)
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 |
extract(part FROM time)
Description | Get subfield from a time. |
Example | extract('hour' FROM TIME '14:21:13') |
Result | 14 |
get_current_time()
Description | Current time (start of current transaction). |
Example | get_current_time() |
Result | 10:31:58.578 |
Alias | current_time |
make_time(bigint, bigint, double)
Description | The time for the given parts. |
Example | make_time(13, 34, 27.123456) |
Result | 13:34:27.123456 |