Skip to main content
本节中的大多数函数都接受可选的时区参数,例如 Europe/Amsterdam。在这种情况下,使用的时区将是指定的时区,而不是本地 (默认) 时区。 示例
为兼容 SQL 标准,以下函数 NOW、CURRENT_TIMESTAMP、TODAY 和 CURRENT_DATE 可在不加括号的情况下使用。

UTCTimestamp

引入版本:v22.11.0 返回查询分析时刻的当前日期和时间。该函数是常量表达式。 此函数的结果与 now('UTC') 相同。添加它仅是为了支持 MySQL。推荐使用 now。 语法
别名: UTC_timestamp 参数
  • 无。
返回值 返回查询分析时刻的当前日期和时间。DateTime 示例 获取当前 UTC 时间戳
Query
Response

YYYYMMDDToDate

引入版本:v23.9.0 将包含年份、月份和日期数字的数值转换为 Date。 此函数与 toYYYYMMDD() 的作用相反。 如果输入未编码出有效的 Date 值,则输出结果未定义。 语法
参数 返回值 根据给定参数返回一个 Date 值 Date 示例 示例
Query
Response

YYYYMMDDToDate32

引入版本:v23.9.0 将包含年、月、日的数值转换为 Date32。 此函数与 toYYYYMMDD() 函数相反。 如果输入未编码为有效的 Date32 值,则输出结果未定义。 语法
参数 返回值 返回由给定参数生成的 Date32 值 Date32 示例 示例
Query
Response

YYYYMMDDhhmmssToDateTime

引入版本:v23.9.0 将包含年、月、日、时、分、秒的数字转换为 DateTime。 此函数与 toYYYYMMDDhhmmss() 的作用相反。 如果输入未编码为有效的 DateTime 值,则输出结果未定义。 语法
参数
  • YYYYMMDDhhmmss — 包含年、月、日、时、分、秒的数值。(U)Int* 或 Float* 或 Decimal
  • timezone — 时区名称。String
返回值 根据给定参数返回 DateTime 值。DateTime 示例 示例
Query
Response

YYYYMMDDhhmmssToDateTime64

引入版本:v23.9.0 将包含年、月、日、小时、分钟和秒的数字转换为 DateTime64。 此函数与 toYYYYMMDDhhmmss() 函数的作用相反。 如果输入未编码为有效的 DateTime64 值,则输出结果未定义。 语法
参数
  • YYYYMMDDhhmmss — 包含年、月、日、时、分、秒的数值。(U)Int* 或 Float* 或 Decimal
  • precision — 小数部分精度 (0-9) 。UInt8
  • timezone — 时区名称。String
返回值 根据给定参数返回一个 DateTime64 值。DateTime64 示例 示例
Query
Response

addDate

引入版本:v23.9.0 将时间间隔加到给定的日期、日期时间,或以字符串编码的日期或日期时间上。 如果相加后的值超出该数据类型的取值范围,则结果未定义。 语法
参数 返回值 返回将 interval 添加到 datetime 后得到的日期或日期时间。Date 或 Date32 或 DateTime 或 DateTime64 示例 为日期添加时间间隔
Query
Response

addDays

引入版本:v1.1.0 为日期、日期时间,或以字符串编码的日期或日期时间增加指定天数。 语法
参数 返回值 返回 datetime 加上 num 天后的结果。Date 或 Date32 或 DateTime 或 DateTime64 示例 为不同的日期类型增加天数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addHours

引入版本:v1.1.0 为日期、日期时间,或以字符串编码的日期或日期时间增加指定小时数。 语法
参数 返回值 返回 datetime 加上 num 小时后的结果:DateTime 或 DateTime64(3) 示例 为不同日期类型添加小时
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addInterval

引入版本:v22.11.0 将一个时间间隔加到另一个时间间隔或时间间隔元组中。
相同类型的时间间隔会合并成一个时间间隔。例如,如果传入 toIntervalDay(1) 和 toIntervalDay(2),则结果将是 (3),而不是 (1,1)。
语法
参数
  • interval_1 — 第一个时间间隔或由多个时间间隔组成的 Tuple。Interval 或 Tuple(Interval)
  • interval_2 — 要相加的第二个时间间隔。Interval
返回值 返回由时间间隔组成的 Tuple Tuple(Interval) 示例 时间间隔相加
Query
Response

addMicroseconds

引入版本:v22.6.0 向日期时间或字符串形式的日期时间添加指定的微秒数。 语法
参数 返回值 返回 date_time 加上 num 微秒后的结果。DateTime64 示例 为不同的日期时间类型添加微秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addMilliseconds

版本引入:v22.6.0 为日期时间或以字符串编码的日期时间添加指定的毫秒数。 语法
参数 返回值 返回加上 num 毫秒后的 datetime。DateTime64 示例 为不同的日期时间类型添加毫秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addMinutes

引入版本:v1.1.0 将指定的分钟数加到日期、日期时间,或以字符串编码的日期或日期时间上。 语法
参数 返回值 返回 datetime 加上 num 分钟后的值。DateTime 或 DateTime64(3) 示例 为不同日期类型添加分钟
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addMonths

引入版本:v1.1.0 为日期、日期时间或以字符串编码的日期或日期时间增加指定数量的月份。 语法
参数 返回值 返回 datetime 加上 num 个月后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 向不同日期类型添加月份
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addNanoseconds

引入版本:v22.6.0 为日期时间或以字符串编码的日期时间添加指定数量的纳秒。 语法
参数 返回值 返回 datetime 加上 num 纳秒后的结果,类型为 DateTime64 示例 为不同的日期时间类型添加纳秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addQuarters

引入版本:v20.1.0 为日期、日期时间或以字符串编码的日期或日期时间增加指定数量的季度。 语法
参数 返回值 返回在 datetime 基础上加上 num 个季度后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 为不同的日期类型添加季度
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addSeconds

首次引入于:v1.1.0 将指定的秒数加到日期、日期时间,或字符串编码的日期或日期时间上。 语法
参数 返回值 返回 datetime 加上 num 秒后的值。DateTime 或 DateTime64(3) 示例 为不同日期类型添加秒数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addTupleOfIntervals

引入版本:v22.11.0 将一个时间间隔 Tuple 依次添加到日期或日期时间中。 语法
参数 返回值 返回加上 intervals 后的 date。Date 或 Date32 或 DateTime 或 DateTime64 示例 将时间间隔 Tuple 添加到日期
Query
Response

addWeeks

引入版本:v1.1.0 为日期、日期时间或以字符串编码的日期/日期时间增加指定的周数。 语法
参数 返回值 返回 datetime 加上 num 周后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 为不同日期类型添加周数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

addYears

引入于:v1.1.0 为日期、日期时间或字符串编码的日期/日期时间增加指定的年数。 语法
参数 返回值 返回 datetime 加上 num 年后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 为不同日期类型添加年份
Query
Response
使用另一种 INTERVAL 语法
Query
Response

age

引入版本:v23.1.0 返回 startdate 与 enddate 之间差值中对应单位的分量。 该差值按 1 纳秒精度计算。 例如,2021-12-29 与 2022-01-01 之间的差值,按 day 单位计算为 3 天, 按 month 单位计算为 0 个月,按 year 单位计算为 0 年。 有关 age 的替代方案,请参见函数 dateDiff。 语法
参数
  • unit — 结果的时间间隔类型。
  • startdate — 相减时的第一个时间值 (减数) 。Date 或 Date32 或 DateTime 或 DateTime64
  • enddate — 相减时的第二个时间值 (被减数) 。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。时区名称。如果指定,则同时应用于 startdate 和 enddate。如果未指定,则使用 startdate 和 enddate 各自的时区。如果两者不一致,则结果未定义。String
返回值 返回以 unit 表示的 enddate 与 startdate 之差。Int32 示例 按小时计算年龄
Query
Response
按不同单位计算年龄
Query
Response

changeDay

引入版本:v24.7.0 更改日期或日期时间中的日字段。 语法
参数 返回值 返回与 date_or_datetime 类型相同、但日期部分已修改的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 使用示例
Query
Response

changeHour

首次引入于:v24.7.0 更改日期或日期时间中的小时部分。 语法
参数 返回值 返回一个与 date_or_datetime 类型相同、但小时部分已修改的值。DateTime 或 DateTime64 示例 使用示例
Query
Response

changeMinute

引入版本:v24.7.0 更改 日期或日期时间 的分钟部分。 语法
参数 返回值 返回一个与 date_or_datetime 类型相同、分钟部分已修改的值。DateTime 或 DateTime64 示例 使用示例
Query
Response

changeMonth

引入版本:v24.7.0 更改日期或日期时间中的月份部分。 语法
参数 返回值 返回与 date_or_datetime 类型相同、月份部分已修改的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 使用示例
Query
Response

changeSecond

引入版本:v24.7.0 更改日期或日期时间的秒部分。 语法
参数 返回值 返回与 date_or_datetime 类型相同、但秒部分已被修改的值。DateTime 或 DateTime64 示例 使用示例
Query
Response

changeYear

首次引入版本:v24.7.0 更改日期或日期时间中的年份部分。 语法
参数 返回值 返回一个与 date_or_datetime 类型相同、但年份部分已修改的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 使用示例
Query
Response

dateDiff

引入版本:v23.4.0 返回 startdate 与 enddate 之间跨过的指定 unit 边界数。 该差值按相对单位计算。例如,对于单位 day,2021-12-29 与 2022-01-01 之间相差 3 天 (参见 toRelativeDayNum) ;对于单位 month,相差 1 个月 (参见 toRelativeMonthNum) ;对于单位 year,相差 1 年 (参见 toRelativeYearNum) 。 如果指定单位为 week,则 dateDiff 假定每周从星期一开始。 请注意,这一行为与函数 toWeek() 不同,后者默认将星期日视为每周的开始。 如需 dateDiff 的替代方案,请参见函数 age。 语法
别名: timestampDiff, TIMESTAMP_DIFF, DATE_DIFF, date_diff, timestamp_diff 参数
  • unit — 结果所使用的时间间隔类型。
  • startdate — 要相减的第一个时间值 (减数) 。Date 或 Date32 或 DateTime 或 DateTime64
  • enddate — 要减去第一个时间值的第二个时间值 (被减数) 。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。时区名称。如果指定,则同时应用于 startdate 和 enddate。如果未指定,则使用 startdate 和 enddate 各自的时区。如果两者不一致,则结果未指定。String
返回值 返回 enddate 与 startdate 之间以 unit 表示的差值。Int64 示例 按小时计算日期差值
Query
Response
按不同单位计算日期差
Query
Response

dateName

引入版本:v21.7.0 返回日期中指定的部分。 可选值:
  • ‘year’
  • ‘quarter’
  • ‘month’
  • ‘week’
  • ‘dayofyear’
  • ‘day’
  • ‘weekday’
  • ‘hour’
  • ‘minute’
  • ‘second’
语法
参数 返回值 返回指定的日期部分。String 示例 提取不同的日期部分
Query
Response

dateTrunc

引入版本:v20.8.0 按指定的日期部分截断日期和时间值。 语法
别名: DATE_TRUNC 参数
  • unit — 用于截断结果的时间间隔类型。可能的值:nanosecond (仅限 DateTime64) 、microsecond (仅限 DateTime64) 、millisecond (仅限 DateTime64) 、second、minute、hour、day、week、month、quarter、year。 String
  • datetime — 日期和时间。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。返回的日期时间使用的时区名称。如未指定,函数将使用 datetime 参数的时区。String
返回值 返回截断后的日期时间值。 示例 不指定时区进行截断
Query
Response
使用指定时区截断
Query
Response

formatDateTime

引入版本:v1.1.0 根据给定的格式字符串对日期或日期时间进行格式化。format 是一个常量表达式,因此单个结果列不能使用多种格式。 formatDateTime 使用 MySQL 日期时间格式,参见 mysql docs。 此函数的反向操作是 parseDateTime。 使用替换字段,你可以为结果字符串定义模式。 下表中的示例列展示了 2018-01-02 22:33:44 的格式化结果。 替换字段:
  • 在早于 v23.4 的 ClickHouse 版本中,如果格式化的值是 Date、Date32、DateTime (它们不包含秒的小数部分) 或 precision 为 0 的 DateTime64,%f 会输出单个零 (0) 。
  • 在早于 v25.1 的 ClickHouse 版本中,%f 输出的位数会与 DateTime64 的 标度 指定的位数一致,而不是固定为 6 位。
  • 在早于 v23.4 的 ClickHouse 版本中,%M 输出的是分钟 (00-59) ,而不是完整月份名称 (January-December) 。
语法
别名:DATE_FORMAT 参数
  • datetime — 要格式化的日期或日期时间值。Date 或 Date32 或 DateTime 或 DateTime64
  • format — 包含替换字段的格式字符串。String
  • timezone — 可选。格式化后时间使用的时区名称。String
返回值 根据指定格式返回时间和日期值。String 示例 使用年份占位符格式化日期
Query
Response
将 DateTime64 格式化为带有小数秒的格式
Query
Response
按时区格式化
Query
Response

formatDateTimeInJodaSyntax

引入于:v20.1.0 与 formatDateTime 类似,不同之处在于它使用 Joda 风格而不是 MySQL 风格来格式化日期时间。请参阅 Joda Time 文档。 此函数的反向操作是 parseDateTimeInJodaSyntax。 使用替换字段,可以为结果字符串定义模式。 替换字段: 语法
参数
  • datetime — 要格式化的日期或日期时间值。DateTime 或 Date 或 Date32 或 DateTime64
  • format — 使用 Joda 语法替换字段的格式字符串。String
  • timezone — 可选。格式化时间所用的时区名称。String
返回值 根据指定格式返回日期和时间值。String 示例 使用 Joda 语法格式化日期时间
Query
Response

fromDaysSinceYearZero

引入版本:v23.11.0 对于给定的自 0000 年 1 月 1 日以来经过的天数,返回 ISO 8601 定义的前推格里高利历中的对应日期。 该计算方式与 MySQL 的 FROM_DAYS() 函数相同。如果结果无法表示在 Date 类型的取值范围内,则结果未定义。 语法
别名: FROM_DAYS 参数
  • days — 自零年开始经过的天数。UInt32
返回值 返回与自零年开始经过的天数对应的日期。Date 示例 将自零年开始经过的天数转换为日期
Query
Response

fromDaysSinceYearZero32

引入版本:v23.11.0 对于自 0000 年 1 月 1 日 起经过的给定天数,返回 ISO 8601 定义的前推格里高利历中的对应日期。 其计算方式与 MySQL 的 FROM_DAYS() 函数相同。如果结果无法在 Date32 类型的取值范围内表示,则结果未定义。 语法
参数
  • days — 自零年起累计经过的天数。UInt32
返回值 返回与自零年起累计经过的天数对应的日期。Date32 示例 将自零年起累计经过的天数转换为日期
Query
Response

fromModifiedJulianDay

引入版本:v21.1.0 将 修正儒略日 数值转换为文本格式的 前推格里高利历 日期 YYYY-MM-DD。此函数支持的日数范围为 -678941 到 2973483 (分别表示 0000-01-01 和 9999-12-31) 。如果日数超出支持范围,则会引发异常。 语法
参数
  • day — 修正儒略日编号。(U)Int*
返回值 以文本形式返回日期。 String 示例 将修正儒略日转换为日期
Query
Response

fromModifiedJulianDayOrNull

引入版本:v21.1.0 与 fromModifiedJulianDay() 类似,但它不会抛出异常,而是返回 NULL。 语法
参数
  • day — 修正儒略日编号。(U)Int*
返回值 如果 day 参数有效,则以文本形式返回日期;否则返回 null。Nullable(String) 示例 将修正儒略日转换为日期,并处理 null 值
Query
Response

fromUTCTimestamp

引入版本:v22.1.0 将日期或日期时间值从 UTC 时区转换为指定时区中的日期或日期时间值。此函数主要是为了兼容 Apache Spark 及类似框架而提供。 语法
别名:from_utc_timestamp 参数
  • datetime — 日期或日期时间常量值,或表达式。DateTime 或 DateTime64
  • time_zone — String 类型的常量值,或表示时区的表达式。String
返回值 返回指定时区的 DateTime/DateTime64。DateTime 或 DateTime64 示例 将 UTC 时区转换为指定时区
Query
Response

fromUnixTimestamp

引入版本:v20.8.0 此函数将 Unix timestamp 转换为日历日期和一天中的时间。 它有两种调用方式: 语法
别名: FROM_UNIXTIME 参数
  • timestamp — Unix 时间戳或日期/日期时间值。(U)Int* 或 Date 或 Date32 或 DateTime 或 DateTime64
  • format — 可选。用于输出格式化的常量格式字符串。String
  • timezone — 可选。常量时区字符串。String
返回值 传入一个参数时,返回该时间戳对应的 DateTime;传入两个或三个参数时,返回 String。DateTime 或 String 示例 将 Unix 时间戳转换为 DateTime
Query
Response
按格式转换 Unix 时间戳
Query
Response

fromUnixTimestampInJodaSyntax

引入版本:v23.1.0 此函数将 Unix 时间戳转换为日历日期和一天中的时间。 它有两种调用方式: 当给定一个类型为 Integer 的单个参数时,返回类型为 DateTime 的值,即其行为类似于 toDateTime。 当给定两个或三个参数,且第一个参数是类型为 Integer、Date、Date32、DateTime 或 DateTime64 的值,第二个参数是常量格式字符串,第三个参数是可选的常量时区字符串时,该函数返回类型为 String 的值,即其行为类似于 formatDateTimeInJodaSyntax。在这种情况下,使用 Joda 日期时间格式样式。 语法
参数
  • timestamp — Unix 时间戳或日期时间值。(U)Int* 或 Date 或 Date32 或 DateTime 或 DateTime64
  • format — 可选。使用 Joda 语法进行输出格式化的常量格式字符串。String
  • timezone — 可选。常量时区字符串。String
返回值 传入一个参数时,返回日期时间值;传入两个或三个参数时,返回 String。} DateTime 或 String 示例 使用 Joda 格式转换 Unix 时间戳
Query
Response

makeDate

版本引入:v22.6.0 根据以下任一输入创建 Date:
  • 年、月、日
  • 年和一年中的第几天
语法
参数 返回值 返回一个根据给定参数构造的 Date 值 Date 示例 根据年、月、日构造日期
Query
Response
根据年份和年内第几天生成日期
Query
Response

makeDate32

引入版本:v22.6.0 通过以下任一方式创建 Date32:
  • 年、月、日
  • 年和一年中的第几天
语法
参数 返回值 返回根据提供的参数构造的 Date32 值 Date32 示例 由年、月、日构造 Date32
Query
Response
根据年份和一年中的第几天生成 Date32
Query
Response

makeDateTime

引入版本:v22.6.0 根据年、月、日、时、分和秒创建 DateTime,并可选指定 timezone。 语法
参数 返回值 返回根据提供的参数构造的 DateTime 值 DateTime 示例 根据 year、month、day、hour、minute、second 构造 DateTime
Query
Response

makeDateTime64

引入版本:v22.6.0 根据 year、month、day、hour、minute、second 创建 DateTime64,并可选指定 fraction、precision 和 timezone。 语法
参数 返回值 返回根据给定参数构造的 DateTime64 值 DateTime64 示例 通过 year、month、day、hour、minute、second 构造 DateTime64
Query
Response

monthName

首次引入于:v22.1.0 返回日期或日期时间值对应的月份名称字符串。 语法
参数 返回值 返回月份名称。String 示例 从日期中获取月份名称
Query
Response

now

引入版本:v1.1.0 返回查询分析时的当前日期和时间。该函数是一个常量表达式。 语法
别名: current_timestamp 参数
  • timezone — 可选。返回值所用的时区名称。String
返回值 返回当前日期和时间。DateTime 示例 不带时区的查询
Query
Response
指定时区的查询
Query
Response
不使用括号的 SQL 标准语法
Query
Response

now64

引入版本:v20.1.0 返回查询分析时刻的当前日期和时间,具有子秒级精度。该函数是一个常量表达式。 语法
参数
  • scale — 可选。时间粒度 (precision) 为 10^-precision 秒。有效范围:[0 : 9]。通常使用 3 (默认,毫秒) 、6 (微秒) 或 9 (纳秒) 。UInt8
  • timezone — 可选。用于返回值的时区名称。String
返回值 返回带有子秒级精度的当前日期和时间。DateTime64 示例 使用默认精度和自定义精度的查询
Query
Response

nowInBlock

自 v22.8.0 引入 返回处理每个数据块时的当前日期和时间。与函数 now 不同,它不是常量表达式,因此对于运行时间较长的查询,不同块中的返回值会不同。 在运行时间较长的 INSERT SELECT 查询中,使用此函数生成当前时间是合理的。 语法
参数
  • timezone — 可选。返回值所用的时区名称。String
返回值 返回处理每个数据块时的当前日期和时间。DateTime 示例 与 now() 函数的区别
Query
Response

nowInBlock64

引入版本:v25.8.0 返回处理每个数据块时的当前日期和时间,精确到毫秒。与函数 now64 不同,它不是常量表达式,因此对于长时间运行的查询,不同块返回的值会有所不同。 在长时间运行的 INSERT SELECT 查询中,使用此函数生成当前时间很有意义。 语法
参数
  • scale — 可选。时间粒度 (precision) :10^-precision 秒。有效范围:[0 : 9]。通常使用 3 (默认,毫秒) 、6 (微秒) 或 9 (纳秒) 。UInt8
  • timezone — 可选。返回值的时区名称。String
返回值 返回处理每个数据块时刻的当前日期和时间,具有子秒级精度。DateTime64 示例 与 now64() 函数的区别
Query
Response

serverTimezone

引入版本:v23.6.0 返回服务器的时区,即 timezone 设置的值。 如果该函数是在分布式表的上下文中执行的,则会生成一个普通列,其值对应各个分片。否则,会生成一个常量值。 语法
别名:serverTimeZone 参数
  • 无。
返回值 返回服务器时区,类型为 String 示例 使用示例
Query
Response

subDate

引入版本:v23.9.0 从给定的日期、日期时间,或以字符串编码的日期或日期时间中减去时间间隔。 如果相减后的值超出该数据类型的取值范围,则结果未定义。 语法
参数 返回值 返回从 datetime 中减去 interval 后得到的日期或日期时间。Date 或 Date32 或 DateTime 或 DateTime64 示例 从日期中减去时间间隔
Query
Response

subtractDays

引入版本:v1.1.0 从日期、日期时间,或字符串形式的日期或日期时间中减去指定天数。 语法
参数 返回值 返回 datetime 减去 num 天后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 从不同日期类型中减去天数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractHours

引入版本:v1.1.0 从日期、日期时间,或以字符串编码的日期或日期时间中减去指定的小时数。 语法
参数 返回值 返回 datetime 减去 num 小时后的结果。DateTime 或 DateTime64(3) 示例 对不同日期类型减去小时数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractInterval

首次引入版本:v22.11.0 将一个取负的时间间隔加到另一个时间间隔或由多个时间间隔组成的元组上。 注意:相同类型的时间间隔会合并为单个时间间隔。例如,如果传入 toIntervalDay(2) 和 toIntervalDay(1), 那么结果将是 (1),而不是 (2,1)。 语法
参数
  • interval_1 — 第一个时间间隔,或由时间间隔组成的 Tuple。Interval 或 Tuple(Interval)
  • interval_2 — 将被取反的第二个时间间隔。Interval
返回值 返回由时间间隔组成的元组 Tuple(T) 示例 时间间隔相减
Query
Response

subtractMicroseconds

引入版本:v22.6.0 从日期时间或字符串编码的日期时间中减去指定数量的微秒。 语法
参数 返回值 返回 datetime 减去 num 微秒后的结果:DateTime64 示例 对不同的日期时间类型减去微秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractMilliseconds

引入版本:v22.6.0 从日期时间或字符串形式编码的日期时间中减去指定毫秒数。 语法
参数 返回值 返回 datetime 减去 num 毫秒后的结果。DateTime64 示例 从不同的日期时间类型中减去毫秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractMinutes

引入版本:v1.1.0 从日期、日期时间或以字符串编码的日期/日期时间中减去指定的分钟数。 语法
参数 返回值 返回 datetime 减去 num 分钟后的值。DateTime 或 DateTime64(3) 示例 从不同日期类型中减去分钟
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractMonths

引入版本:v1.1.0 从日期、日期时间,或以字符串编码的日期或日期时间中减去指定的月数。 语法
参数 返回值 返回 datetime 减去 num 个月后的结果。Date 或 Date32 或 DateTime 或 DateTime64 示例 从不同日期类型中减去月份
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractNanoseconds

自 v20.1.0 起引入 从日期时间或以字符串编码的日期时间中减去指定纳秒数。 语法
参数 返回值 返回 datetime 减去 num 纳秒后的结果。DateTime64 示例 从不同的日期时间类型中减去纳秒
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractQuarters

引入版本:v20.1.0 从日期、日期时间或以字符串编码的日期或日期时间中减去指定数量的季度。 语法
参数 返回值 返回 datetime 减去 num 个季度后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 从不同日期类型中减去季度
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractSeconds

引入版本:v1.1.0 从日期、日期时间,或以字符串编码的日期或日期时间中减去指定的秒数。 语法
参数 返回值 返回 datetime 减去 num 秒后的结果:DateTime 或 DateTime64(3) 示例 从不同日期类型中减去秒数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractTupleOfIntervals

引入版本:v22.11.0 从日期或日期时间中依次减去一个由时间间隔组成的元组。 语法
参数 返回值 返回减去 intervals 后的 date。Date 或 Date32 或 DateTime 或 DateTime64 示例 从日期中减去时间间隔 Tuple
Query
Response

subtractWeeks

引入版本:v1.1.0 从日期、日期时间,或以字符串编码的日期/日期时间中减去指定的周数。 语法
参数 返回值 返回 datetime 减去 num 周后的结果。Date 或 Date32 或 DateTime 或 DateTime64 示例 从不同日期类型中减去周数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

subtractYears

引入版本:v1.1.0 从日期、日期时间或以字符串形式编码的日期或日期时间中减去指定的年数。 语法
参数 返回值 返回 datetime 减去 num 年后的值。Date 或 Date32 或 DateTime 或 DateTime64 示例 从不同日期类型中减去年数
Query
Response
使用另一种 INTERVAL 语法
Query
Response

timeDiff

Introduced in: v23.4.0 返回两个日期或日期时间值之间以秒为单位的差值。 差值按 enddate - startdate 计算。 该函数等同于 dateDiff('second', startdate, enddate)。 如需计算其他单位 (小时、天、月等) 的时间差,请改用 dateDiff 函数。 Syntax
参数 返回值 返回 enddate 与 startdate 之间的差值,以秒表示。Int64 示例 计算以秒为单位的时间差
Query
Response
计算时间差并换算为小时
Query
Response
相当于按秒计算的 dateDiff
Query
Response

timeSlot

Introduced in: v1.1.0 将时间向下舍入到半小时时间间隔的起始时间点。
尽管此函数可以接受扩展类型 Date32 和 DateTime64 的值作为参数, 但如果传入超出正常范围的时间 (Date 为 1970 年至 2149 年 / DateTime 为 2106 年) ,则会产生错误结果。
Syntax
参数
  • time — 要向下取整到半小时时间间隔起始点的时间。DateTime 或 Date32 或 DateTime64
  • time_zone — 可选。String 类型的常量值,或表示时区的表达式。String
返回值 返回向下取整到半小时时间间隔起始点的时间。DateTime 示例 将时间向下取整到半小时时间间隔
Query
Response

timeSlots

引入版本:v1.1.0 对于从 StartTime 开始、持续 Duration 秒的时间间隔,它会返回一个时间点数组,其中包含该区间内按 Size 秒向下取整后的各个时间点。Size 是可选参数,默认值为 1800 (30 分钟) 。 例如,在对应的会话中搜索页面浏览量时,就需要用到它。 对于 DateTime64,返回值的标度可以与 StartTime 的标度不同。将采用所有给定参数中的最高标度。 语法
参数
  • StartTime — 时间区间的起始时间。DateTime 或 DateTime64
  • Duration — 时间区间的持续时间,以秒为单位。UInt32 或 DateTime64
  • Size — 可选。时间槽的大小,以秒为单位。默认值为 1800 (30 分钟) 。UInt32 或 DateTime64
返回值 返回一个 DateTime/DateTime64 数组 (返回类型与 StartTime 的类型一致) 。对于 DateTime64,返回值的标度可能与 StartTime 的标度不同——将采用所有给定参数中的最高标度。Array(DateTime) 或 Array(DateTime64) 示例 为一个时间区间生成时间槽
Query
Response

timestamp

引入版本:v23.9.0 将第一个参数 expr 转换为 DateTime64(6) 类型。 如果提供了第二个参数 expr_time,则会将指定时间加到转换后的值上。 语法
参数
  • expr — 日期或日期时间。String
  • expr_time — 可选。要添加到转换后值的时间。String
返回值 返回 expr 转换后的值,或加上时间后的 expr DateTime64(6) 示例 将日期字符串转换为 DateTime64(6)
Query
Response
为日期字符串添加时间
Query
Response

timezone

引入版本:v21.4.0 返回当前会话的时区名称,或者将时区偏移量或时区名称转换为规范的时区名称。 语法
别名: timeZone 参数
  • 无。
返回值 返回规范的时区名称,返回类型为 String 示例 用法示例
Query
Response

timezoneOf

首次引入于:v21.4.0 返回 DateTime 或 DateTime64 值的时区名称。 语法
别名: timeZoneOf 参数
  • datetime — 类型为 DateTime 或 DateTime64 的值
  • timezone — 可选。要将 datetime 值转换为的时区名称。String
返回值 返回 datetime 的时区名称。String 示例 使用示例
Query
Response

timezoneOffset

Introduced in: v21.6.0 返回相对于 UTC 的时区偏移量,单位为秒。 该函数会将指定日期和时间对应的夏令时以及历史时区变更考虑在内。 Syntax
别名: timeZoneOffset 参数 返回值 返回相对于 UTC 的偏移量,单位为秒 Int32 示例 使用示例
Query
Response

toDayOfMonth

引入版本:v1.1.0 返回 Date 或 DateTime 所在月份中的日期 (1-31) 。 语法
别名:DAY, DAYOFMONTH 参数 返回值 返回给定日期/时间在当月中的第几天,类型为 UInt8 示例 使用示例
Query
Response

toDayOfWeek

引入版本:v1.1.0 返回 Date 或 DateTime 值是星期几的数字。 toDayOfWeek() 的双参数形式允许你指定一周从星期一还是星期日开始, 以及返回值范围是 0 到 6 还是 1 到 7。 语法
别名: DAYOFWEEK 参数
  • datetime — 用于获取星期几的日期或日期时间。Date 或 Date32 或 DateTime 或 DateTime64
  • mode — 可选。指定周模式 (0-3) 的整数。省略时默认为 0。UInt8
  • timezone — 可选。转换时使用的时区。String
返回值 返回给定 Date 或 DateTime 对应的星期几。UInt8 示例 使用示例
Query
Response

toDayOfYear

引入版本:v18.4.0 返回 Date 或 DateTime 值在一年中是第几天 (1-366) 。 语法
别名: DAYOFYEAR 参数 返回值 返回给定 Date 或 DateTime 是一年中的第几天。UInt16 示例 用法示例
Query
Response

toDaysInMonth

引入版本:v26.3.0 返回 Date 或 DateTime 所在月份的天数。 返回值范围为 28 到 31。 语法
参数 返回值 返回给定日期/时间所在月份的天数。UInt8 示例 使用示例
Query
Response

toDaysSinceYearZero

引入版本:v23.9.0 对于给定日期,返回自 0000 年 1 月 1 日起,按照 ISO 8601 定义的前推公历 计算所经过的天数。 该计算方式与 MySQL 的 TO_DAYS 函数相同。 语法
别名: TO_DAYS 参数 返回值 返回自 0000-01-01 以来经过的天数。UInt32 示例 计算自零年起的天数
Query
Response

toHour

引入版本:v1.1.0 返回 DateTime 或 DateTime64 值的小时部分 (0-23) 。 语法
别名: HOUR 参数 返回值 返回 datetime 的小时值 (0-23) 。UInt8 示例 使用示例
Query
Response

toISOWeek

引入版本:v20.1.0 返回某个日期或日期时间的 ISO 周数。 这是一个兼容性函数,等同于 toWeek(date, 3)。 ISO 周从星期一开始,一年中的第一周包含 1 月 4 日。 根据 ISO 8601,周数范围为 1 到 53。 请注意,接近年初或年末的日期可能会返回上一年或下一年的周数。例如, 2025 年 12 月 29 日返回第 1 周,因为它属于包含 2026 年 1 月 4 日的第一周。 语法
参数 返回值 根据 ISO 8601 标准返回 ISO 周数。返回 1 到 53 之间的数值。UInt8 示例 获取 ISO 周数
Query
Response
ISO 周可能属于不同年份
Query
Response

toISOYear

引入版本:v18.4.0 将日期或日期时间转换为 ISO 年编号。 语法
参数 返回值 返回将输入值转换后的 ISO 年编号。UInt16 示例 从日期值中获取 ISO 年
Query
Response

toLastDayOfMonth

引入版本:v1.1.0 将日期或日期时间向上取整到当月的最后一天。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
别名: LAST_DAY 参数 返回值 返回给定日期或日期时间所在月份最后一天对应的日期。Date 示例 向上取整到当月最后一天
Query
Response

toLastDayOfWeek

Introduced in: v23.5.0 将日期或日期时间向上取整到最近的星期六或星期日。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
语法
参数
  • datetime — 要转换的日期或日期时间。Date 或 DateTime 或 Date32 或 DateTime64
  • mode — 按 toWeek() 函数中的说明确定一周的第一天。默认值为 0。UInt8
  • timezone — 可选。转换时使用的时区。如果未指定,则使用 server 的时区。String
返回值 根据 mode,返回给定日期当天或之后最近的星期六或星期日对应的日期。Date 或 Date32 示例 向上取整到最近的星期六或星期日
Query
Response

toMillisecond

引入版本:v24.2.0 返回 DateTime 或 DateTime64 值中的毫秒部分 (0-999) 。 语法
别名:MILLISECOND 参数 返回值 返回 datetime 所在分钟内的毫秒值 (0 - 59) 。UInt16 示例 使用示例
Query
Response

toMinute

引入版本:v1.1.0 返回 Date 或 DateTime 值的分钟部分 (0-59) 。 语法
别名: MINUTE 参数 返回值 返回 datetime 的分钟值 (0 - 59) 。UInt8 示例 使用示例
Query
Response

toModifiedJulianDay

引入版本:v21.1.0 将文本格式 YYYY-MM-DD 的逆推格里高利历日期转换为 Int32 类型的修正儒略日数值。此函数支持 0000-01-01 到 9999-12-31 范围内的日期。如果参数无法解析为日期,或日期无效,则会引发异常。 语法
参数 返回值 返回修正儒略日数值。Int32 示例 将日期转换为修正儒略日
Query
Response

toModifiedJulianDayOrNull

Introduced in:v21.1.0 与 toModifiedJulianDay() 类似,但它不会抛出异常,而是返回 NULL。 Syntax
参数 返回值 对于有效的 date,返回修正儒略日数;否则返回 null。Nullable(Int32) 示例 将日期转换为修正儒略日,并处理 null 值
Query
Response

toMonday

引入版本:v1.1.0 将日期或日期时间向下取整到同一周的周一。返回该日期。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
参数 返回值 返回给定日期或日期时间所在周的周一对应日期。Date 示例 向下舍入到所在周的周一
Query
Response

toMonth

首次引入版本:v1.1.0 返回 Date 或 DateTime 值中的月份部分 (1-12) 。 语法
别名: MONTH 参数 返回值 返回给定日期/时间中的月份。UInt8 示例 用法示例
Query
Response

toMonthNumSinceEpoch

引入版本:v25.3.0 返回自 1970 年起经过的月数 语法
参数 返回值 正整数 示例 示例
Query
Response

toQuarter

引入版本:v1.1.0 返回给定 Date 或 DateTime 值所在年份中的季度 (1-4) 。 语法
别名: QUARTER 参数 返回值 返回给定日期/时间所在年份的季度。UInt8 示例 使用示例
Query
Response

toRelativeDayNum

引入版本:v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的天数。 确切的时间点属于实现细节,因此不应单独使用此函数。 该函数的主要用途是计算两个日期或日期时间之间相差的天数,例如 toRelativeDayNum(dt1) - toRelativeDayNum(dt2)。 语法
参数 返回值 返回自过去某个固定参考点起的天数。UInt32 示例 获取相对天数
Query
Response

toRelativeHourNum

引入版本:v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的小时数。 具体的时间点属于实现细节,因此不应单独使用此函数。 此函数的主要用途是计算两个日期或日期时间之间相差的小时数,例如 toRelativeHourNum(dt1) - toRelativeHourNum(dt2)。 语法
参数 返回值 返回自过去某个固定参考点起经过的小时数。UInt32 示例 获取相对小时数
Query
Response

toRelativeMinuteNum

自以下版本引入:v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的分钟数。 确切的时间点属于实现细节,因此不应单独使用此函数。 该函数的主要用途是计算两个日期或日期时间之间相差的分钟数,例如:toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2)。 语法
参数 返回值 返回距过去某个固定参考点的分钟数。UInt32 示例 获取相对分钟数
Query
Response

toRelativeMonthNum

引入版本:v1.1.0 将日期或日期时间转换为自过去某个固定时间点以来经过的月数。 确切的时间点属于实现细节,因此此函数不适合单独使用。 该函数的主要用途是计算两个日期或日期时间之间相差的月数,例如 toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2)。 语法
参数 返回值 返回从过去某个固定参考点起算的月份数。UInt32 示例 获取相对月份序号
Query
Response

toRelativeQuarterNum

引入版本:v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的季度数。 确切的时间点属于实现细节,因此不适合单独使用此函数。 此函数的主要用途是计算两个日期或日期时间之间相差的季度数,例如:toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2)。 语法
参数 返回值 返回从过去某个固定参考点起算的季度数。UInt32 示例 获取相对季度编号
Query
Response

toRelativeSecondNum

Introduced in: v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的秒数。 该确切时间点属于实现细节,因此此函数不适合单独使用。 此函数的主要用途是计算两个日期或日期时间之间相差的秒数,例如 toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2)。 Syntax
参数 返回值 返回自过去某个固定参考点起经过的秒数。UInt32 示例 获取相对秒数
Query
Response

toRelativeWeekNum

引入版本:v1.1.0 将 date 或 date with time 转换为自过去某个固定时间点起经过的周数。 该确切时间点属于实现细节,因此此函数不适合单独使用。 此函数的主要用途是计算两个日期或日期时间之间相差的周数,例如:toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2)。 语法
参数 返回值 返回自过去某个固定参考点以来的周数。UInt32 示例 获取相对周数
Query
Response

toRelativeYearNum

引入版本:v1.1.0 将日期或日期时间转换为自过去某个固定时间点起经过的年数。 确切的时间点属于实现细节,因此不建议单独使用此函数。 此函数的主要用途是计算两个日期或日期时间之间相差的年数,例如 toRelativeYearNum(dt1) - toRelativeYearNum(dt2)。 语法
参数 返回值 返回距过去某个固定参考点的年份数。UInt16 示例 获取相对年份数
Query
Response

toSecond

引入版本:v1.1.0 返回 DateTime 或 DateTime64 值中的秒部分 (0-59) 。 语法
别名:SECOND 参数 返回值 返回 datetime 在当前分钟中的秒数 (0 - 59) 。UInt8 示例 用法示例
Query
Response

toStartOfDay

引入版本:v1.1.0 将日期时间向下取整到当天起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
语法
参数
  • datetime — 要向下取整的日期或日期时间。Date 或 DateTime
返回值 返回向下取整到当天开始时刻的日期时间。DateTime 或 DateTime64 示例 向下取整到当天开始时刻
Query
Response

toStartOfFifteenMinutes

引入版本:v1.1.0 将日期时间向下取整到所在十五分钟时间间隔的起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
参数 返回值 返回取整到最近 15 分钟时间间隔起点的日期时间。DateTime 或 DateTime64 示例 示例
Query
Response

toStartOfFiveMinutes

Introduced in:v22.6.0 将日期时间向下取整到最近的五分钟时间间隔的起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
Syntax
别名: toStartOfFiveMinute 参数 返回值 返回向下取整到最近 5 分钟起始时刻的日期时间。DateTime 或 DateTime64 示例 示例
Query
Response

toStartOfHour

引入版本:v1.1.0 将日期时间向下取整到该小时的起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
参数 返回值 返回向下舍入到整点的日期时间。DateTime 或 DateTime64 示例 向下舍入到整点
Query
Response

toStartOfISOYear

Introduced in: v1.1.0 将日期或日期时间向下取整到 ISO 年的第一天,该日期可能与普通年份的第一天不同。参见 ISO week date。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
Syntax
参数 返回值 返回给定日期或日期时间所在 ISO 年的第一天。Date 示例 向下取整到 ISO 年的第一天
Query
Response

toStartOfInterval

引入于:v20.1.0 此函数通过 toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone]) 语法,对其他 toStartOf*() 函数进行了泛化。 例如,
  • toStartOfInterval(t, INTERVAL 1 YEAR) 返回的结果与 toStartOfYear(t) 相同,
  • toStartOfInterval(t, INTERVAL 1 MONTH) 返回的结果与 toStartOfMonth(t) 相同,
  • toStartOfInterval(t, INTERVAL 1 DAY) 返回的结果与 toStartOfDay(t) 相同,
  • toStartOfInterval(t, INTERVAL 15 MINUTE) 返回的结果与 toStartOfFifteenMinutes(t) 相同。
计算是相对于以下特定时间点进行的: 如果指定了 unit WEEK,toStartOfInterval 会假定每周从星期一开始。请注意,这一行为与函数 toStartOfWeek 不同,后者默认每周从星期日开始。 第二种重载分别模拟了 TimescaleDB 的 time_bucket() 函数和 PostgreSQL 的 date_bin() 函数。 语法
别名: time_bucket, date_bin 参数
  • value — 要向下取整的日期或日期时间值。Date 或 DateTime 或 DateTime64
  • x — 时间间隔长度的数值。 - unit — 时间间隔单位:YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND、MILLISECOND、MICROSECOND、NANOSECOND。 - time_zone — 可选。字符串形式的时区名称。 - origin — 可选。计算所用的原点 (仅第二种重载) 。
返回值 返回包含输入值的时间间隔起点。DateTime 示例 基本时间间隔取整
Query
Response
使用起点
Query
Response

toStartOfMicrosecond

引入版本:v22.6.0 将日期时间向下取整到微秒开始时刻。 语法
参数
  • datetime — 日期和时间。DateTime64
  • timezone — 可选。返回值使用的时区。若未指定,则函数使用 value 参数的时区。String
返回值 带有亚微秒部分的输入值 DateTime64 示例 不带时区的查询
Query
Response
指定时区的查询
Query
Response

toStartOfMillisecond

引入版本:v22.6.0 将日期时间向下取整到毫秒的开始时刻。 语法
参数
  • datetime — 日期和时间。DateTime64
  • timezone — 可选。返回值的时区。若未指定,函数将使用 value 参数的时区。String
返回值 带有亚毫秒精度的输入值。DateTime64 示例 不带时区的查询
Query
Response
指定时区的查询
Query
Response

toStartOfMinute

引入版本:v1.1.0 将日期时间向下取整到该分钟的起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
参数 返回值 返回向下取整到该分钟开始时刻的日期时间。DateTime 或 DateTime64 示例 向下取整到该分钟开始时刻
Query
Response

toStartOfMonth

引入版本:v1.1.0 将日期或日期时间向下取整到该月的第一天。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
语法
参数 返回值 返回给定日期或日期时间所在月份的第一天。Date 示例 向下取整到当月第一天
Query
Response

toStartOfNanosecond

引入版本:v22.6.0 将日期时间向下取整到纳秒的起始时刻。 语法
参数
  • datetime — 日期和时间。DateTime64
  • timezone — 可选。返回值的时区。如果未指定,则该函数使用 value 参数的时区。String
返回值 带纳秒的输入值。DateTime64 示例 不带时区的查询
Query
Response
带时区的查询
Query
Response

toStartOfQuarter

Introduced in: v1.1.0 将日期或日期时间向下取整到所在季度的第一天。季度的第一天可能是 1 月 1 日、4 月 1 日、7 月 1 日或 10 月 1 日。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
语法
参数 返回值 返回给定日期或日期时间所在季度的第一天。Date 示例 向下取整到所在季度的第一天
Query
Response

toStartOfSecond

引入版本:v20.5.0 将日期时间向下取整到秒的起始时刻。 语法
参数
  • datetime — 要截去子秒部分的日期和时间。DateTime64
  • timezone — 可选。返回值使用的时区。若未指定,函数将使用参数 value 的时区。String
返回值 返回去除子秒部分后的输入值。DateTime64 示例 不带时区的查询
Query
Response
带时区的查询
Query
Response

toStartOfTenMinutes

引入版本:v20.1.0 将日期时间向下取整到最近一个十分钟时间间隔的起始时刻。
返回类型可通过设置 enable_extended_results_for_datetime_functions 进行配置。
语法
参数 返回值 返回舍入到最近 10 分钟时间间隔起始时刻的日期时间。DateTime 或 DateTime64 示例 示例
Query
Response

toStartOfWeek

引入版本:v20.1.0 将日期或日期时间向下取整到最近的星期日或星期一。
可通过设置 enable_extended_results_for_datetime_functions 来配置返回类型。
语法
参数
  • datetime — 要转换的日期或日期时间。Date 或 DateTime 或 Date32 或 DateTime64
  • mode — 按 toWeek() 函数中的说明确定每周的第一天。默认值为 0。UInt8
  • timezone — 转换时使用的时区。如果未指定,则使用服务器的时区。String
返回值 根据 mode,返回给定日期当天或之前最近的星期日或星期一对应的日期。Date 或 Date32 示例 向下取整到最近的星期日或星期一
Query
Response

toStartOfYear

引入版本:v1.1.0 将日期或日期时间向下取整到当年的第一天。返回值为 Date 对象。
返回类型可通过设置 enable_extended_results_for_datetime_functions 来配置。
语法
参数 返回值 返回给定日期/时间所在年份的第一天。Date 示例 向下取整到该年的第一天
Query
Response

toTimeWithFixedDate

Introduced in: v1.1.0 提取日期或日期时间中的时间部分。 返回结果是相对于某个固定时间点的偏移量,目前该时间点为 1970-01-02, 但这一确切时间点属于实现细节,未来可能会变更。 因此,toTime 不应单独使用。 该函数的主要用途是计算两个日期或日期时间之间的时间差,例如 toTime(dt1) - toTime(dt2)。 Syntax
参数 返回值 以相对于某个固定时间点的偏移量形式,返回日期或日期时间值中的时间部分 (当前固定时间点为 1970-01-02) 。DateTime 示例 计算两个日期之间的时间差
Query
Response

toTimezone

自 v1.1.0 引入 将 DateTime 或 DateTime64 转换为指定的时区。 数据的内部值 (Unix 秒数) 不会改变。 只有该值的时区属性和字符串表示形式会发生变化。 语法
别名: toTimeZone 参数 返回值 返回与输入相同的时间戳,但时区为指定时区。DateTime 或 DateTime64 示例 使用示例
Query
Response

toUTCTimestamp

引入版本:v23.8.0 将日期或日期时间值从某个时区转换为 UTC 时区的时间戳。此函数主要用于兼容 Apache Spark 及类似框架。 语法
别名: to_utc_timestamp 参数
  • datetime — 日期或日期时间类型的常量值或表达式。DateTime 或 DateTime64
  • time_zone — 表示时区的 String 类型常量值或表达式。String
返回值 返回 UTC 时区的日期或日期时间。DateTime 或 DateTime64 示例 转换为 UTC 时区
Query
Response

toUnixTimestamp

引入版本:v1.1.0 将 String、Date 或 DateTime 转换为 UInt32 类型的 Unix 时间戳 (自 1970-01-01 00:00:00 UTC 起的秒数) 。 语法
参数 返回值 返回 Unix 时间戳。UInt32 示例 使用示例
Query
Response

toWeek

引入版本:v20.1.0 此函数返回 Date 或 DateTime 的周数。toWeek() 的双参数形式允许你指定一周是从星期日还是星期一开始,以及返回值范围是 0 到 53,还是 1 到 53。 toISOWeek() 是一个兼容性函数,等价于 toWeek(date,3)。 下表说明了 mode 参数的工作方式。 对于含义为 “在本年内包含 4 天或以上” 的 mode 值,周数按 ISO 8601:1988 编号:
  • 如果包含 1 月 1 日的那一周在新的一年中有 4 天或以上,则该周为第 1 周。
  • 否则,该周属于上一年的最后一周,而下一周为第 1 周。
对于含义为 “包含 1 月 1 日” 的 mode 值,包含 1 月 1 日的那一周就是第 1 周。 无论该周在新的一年中包含多少天,都不影响这一点,即使只包含一天也是如此。 也就是说,如果 12 月的最后一周包含下一年的 1 月 1 日,那么它将被视为下一年的第 1 周。 第一个参数也可以指定为 String,格式需受 parseDateTime64BestEffort() 支持。支持字符串参数仅是为了兼容 MySQL,因为某些第三方工具依赖这种行为。由于未来对字符串参数的支持可能会取决于新的 MySQL 兼容性设置,而且字符串解析通常较慢,因此建议不要使用这种方式。 语法
别名: week 参数
  • datetime — 要获取其周数的日期或日期时间值。Date 或 DateTime
  • mode — 可选。取值范围为 0 到 9,用于确定每周的第一天以及周数的取值范围。默认值为 0。 - time_zone — 可选。时区。String
返回值 根据指定的模式返回周数。UInt32 示例 获取不同模式下的周数
Query
Response

toYYYYMM

引入版本:v1.1.0 将日期或日期时间转换为包含年份和月份数字 (YYYY * 100 + MM) 的 UInt32 数值。 接受第二个可选的时区参数;如果提供,该时区必须是字符串常量。 此函数与函数 YYYYMMDDToDate() 相反。 语法
参数
  • datetime — 要转换的日期或日期时间。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。用于转换的时区。如果提供,时区必须为字符串常量。String
返回值 返回一个 UInt32 数值,其中包含年份和月份 (YYYY * 100 + MM) 。UInt32 示例 将当前日期转换为 YYYYMM 格式
Query
Response

toYYYYMMDD

引入版本:v1.1.0 将日期或日期时间转换为一个包含年、月、日数字 (YYYY * 10000 + MM * 100 + DD) 的 UInt32 数值。接受第二个可选的时区参数;如果提供,该时区必须是字符串常量。 语法
参数
  • datetime — 要转换的日期或日期时间值。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。转换时使用的时区。如提供,该时区必须是字符串常量。String
返回值 返回一个 UInt32 数值,包含年、月、日 (YYYY * 10000 + MM * 100 + DD) 。UInt32 示例 将当前日期转换为 YYYYMMDD 格式
Query
Response

toYYYYMMDDhhmmss

引入版本:v1.1.0 将日期或日期时间转换为 UInt64 数值,其中包含年份、月份、日期以及时分秒 (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss) 。 接受第二个可选的时区参数。如果提供,该时区必须是字符串常量。 语法
参数
  • datetime — 要转换的日期或日期时间。Date 或 Date32 或 DateTime 或 DateTime64
  • timezone — 可选。转换时使用的时区。若提供,则时区必须为字符串常量。String
返回值 返回一个 UInt64 数值,包含年、月、日、小时、分钟和秒 (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss) 。UInt64 示例 将当前日期时间转换为 YYYYMMDDhhmmss 格式
Query
Response

toYear

引入版本:v1.1.0 返回 Date 或 DateTime 值的年份部分 (公元) 。 语法
别名: YEAR 参数 返回值 返回给定 Date 或 DateTime 的年份,类型为 UInt16 示例 使用示例
Query
Response

toYearNumSinceEpoch

引入版本:v25.3.0 返回自 1970 年以来经过的年数 语法
参数 返回值 正整数 示例 示例
Query
Response

toYearWeek

引入版本:v20.1.0 返回日期对应的年份和周数。对于一年中的第一周和最后一周,结果中的年份可能与日期参数中的年份不同。 mode 参数的作用方式与 toWeek() 的 mode 参数相同。 警告:toYearWeek() 返回的周数可能与 toWeek() 的返回结果不同。toWeek() 始终返回给定年份上下文中的周数;而当 toWeek() 返回 0 时,toYearWeek() 会返回对应上一年最后一周的值。请参见下面示例中的 prev_yearWeek。 第一个参数也可以指定为 String,格式需为 parseDateTime64BestEffort() 支持的格式。支持字符串参数仅仅是为了兼容某些第三方工具所要求的 MySQL 行为。由于未来对字符串参数的支持可能会依赖新的 MySQL 兼容性设置,且字符串解析通常较慢,因此建议不要使用这种方式。 语法
别名: yearweek 参数
  • datetime — 要获取其年份和周数的日期或日期时间。Date 或 DateTime
  • mode — 可选。取值范围为 0 到 9,用于确定每周的第一天以及周数的范围。默认值为 0。- timezone — 可选。时区。String
返回值 返回年份和周数组合而成的整数值。UInt32 示例 获取不同模式下的年份-周数组合
Query
Response

today

于 v1.1.0 中引入 返回查询分析时刻的当前日期。等同于 toDate(now())。 语法
别名:curdate, current_date 参数
  • 无。
返回值 返回当前日期 Date 示例 用法示例
Query
Response
不使用括号的 SQL 标准语法
Query
Response

yesterday

引入版本:v1.1.0 不接受任何参数,并返回查询分析过程中某一时刻的昨天日期。 语法
参数
  • 无。
返回值 返回昨天的日期。Date 示例 获取昨天的日期
Query
Response
最后修改于 2026年6月10日