⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
间隔函数

本节介绍用于检查和操作 INTERVAL(时间间隔)值的函数和运算符。

时间间隔运算符

下表展示了 INTERVAL 类型可用的数学运算符。

运算符 描述 示例 结果
+ INTERVAL 的加法 INTERVAL 1 HOUR + INTERVAL 5 HOUR INTERVAL 6 HOUR
+ DATE(日期)的加法 DATE '1992-03-22' + INTERVAL 5 DAY 1992-03-27
+ TIMESTAMP(时间戳)的加法 TIMESTAMP '1992-03-22 01:02:03' + INTERVAL 5 DAY 1992-03-27 01:02:03
+ TIME(时间)的加法 TIME '01:02:03' + INTERVAL 5 HOUR 06:02:03
- INTERVAL 的减法 INTERVAL 5 HOUR - INTERVAL 1 HOUR INTERVAL 4 HOUR
- DATE(日期)的减法 DATE '1992-03-27' - INTERVAL 5 DAY 1992-03-22
- TIMESTAMP(时间戳)的减法 TIMESTAMP '1992-03-27 01:02:03' - INTERVAL 5 DAY 1992-03-22 01:02:03
- TIME(时间)的减法 TIME '06:02:03' - INTERVAL 5 HOUR 01:02:03

间隔函数

下表展示了 INTERVAL 类型可用的标量函数。

名称 描述
date_part(part, interval) 提取 datepart(日期部分)组件(等同于 extract)。有关该提取过程可能出现的意外规则,请参阅 INTERVAL 文档。
datepart(part, interval) date_part 的别名。
extract(part FROM interval) date_part 的别名。
epoch(interval) 获取时间间隔的总秒数,返回值为双精度浮点数。
to_centuries(integer) 构建一个世纪 (century) 时间间隔。
to_days(integer) 构建一个天 (day) 时间间隔。
to_decades(integer) 构建一个十年 (decade) 时间间隔。
to_hours(integer) 构建一个小时 (hour) 时间间隔。
to_microseconds(integer) 构建一个微秒 (microsecond) 时间间隔。
to_millennia(integer) 构建一个千年 (millennium) 时间间隔。
to_milliseconds(integer) 构建一个毫秒 (millisecond) 时间间隔。
to_minutes(integer) 构建一个分钟 (minute) 时间间隔。
to_months(integer) 构建一个月份 (month) 时间间隔。
to_quarters(integer)) 构建一个由 integer 指定季度的间隔。
to_seconds(integer) 构建一个秒 (second) 时间间隔。
to_weeks(integer) 构建一个星期 (week) 时间间隔。
to_years(integer) 构建一个年份 (year) 时间间隔。

只有已记录的 date part(日期部分)组件 对时间间隔有效。

date_part(part, interval)

描述 提取 datepart(日期部分)组件(等同于 extract)。有关该提取过程可能出现的意外规则,请参阅 INTERVAL 文档。
示例 date_part('year', INTERVAL '14 months')
结果 1

datepart(part, interval)

描述 date_part 的别名。
示例 datepart('year', INTERVAL '14 months')
结果 1

extract(part FROM interval)

描述 date_part 的别名。
示例 extract('month' FROM INTERVAL '14 months')
结果 2

epoch(interval)

描述 获取时间间隔的总秒数,返回值为双精度浮点数。
示例 epoch(INTERVAL 5 HOUR)
结果 18000.0

to_centuries(integer)

描述 构建一个世纪 (century) 时间间隔。
示例 to_centuries(5)
结果 INTERVAL 500 YEAR

to_days(integer)

描述 构建一个天 (day) 时间间隔。
示例 to_days(5)
结果 INTERVAL 5 DAY

to_decades(integer)

描述 构建一个十年 (decade) 时间间隔。
示例 to_decades(5)
结果 INTERVAL 50 YEAR

to_hours(integer)

描述 构建一个小时 (hour) 时间间隔。
示例 to_hours(5)
结果 INTERVAL 5 HOUR

to_microseconds(integer)

描述 构建一个微秒 (microsecond) 时间间隔。
示例 to_microseconds(5)
结果 INTERVAL 5 MICROSECOND

to_millennia(integer)

描述 构建一个千年 (millennium) 时间间隔。
示例 to_millennia(5)
结果 INTERVAL 5000 YEAR

to_milliseconds(integer)

描述 构建一个毫秒 (millisecond) 时间间隔。
示例 to_milliseconds(5)
结果 INTERVAL 5 MILLISECOND

to_minutes(integer)

描述 构建一个分钟 (minute) 时间间隔。
示例 to_minutes(5)
结果 INTERVAL 5 MINUTE

to_months(integer)

描述 构建一个月份 (month) 时间间隔。
示例 to_months(5)
结果 INTERVAL 5 MONTH

to_quarters(integer)

描述 构建一个由 integer 指定季度的间隔。
示例 to_quarters(5)
结果 INTERVAL 1 YEAR 3 MONTHS

to_seconds(integer)

描述 构建一个秒 (second) 时间间隔。
示例 to_seconds(5)
结果 INTERVAL 5 SECOND

to_weeks(integer)

描述 构建一个星期 (week) 时间间隔。
示例 to_weeks(5)
结果 INTERVAL 35 DAY

to_years(integer)

描述 构建一个年份 (year) 时间间隔。
示例 to_years(5)
结果 INTERVAL 5 YEAR
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南