首页/数据/NoSQL 速查/日期时间函数与时间对齐
ClickHouse56 条

日期时间函数与时间对齐

常用日期函数把时间戳归一到桶:toStartOfHour/Day/Month、toStartOfInterval 自定义区间对齐,dateDiff 计算差值,date_trunc 进行通用截断。

NoSQL 速查数据更新于 2026-10-12
取整toStartOfMinute/Hour/Day/Week/Month/Quarter/Year
自定义toStartOfInterval(ts, INTERVAL 5 MINUTE) 或 date_trunc('minute', ts)
运算now()、today()、dateDiff('day', a, b)、date_add/date_sub 或 ts + INTERVAL 1 DAY

示例

示例
SELECT
    toStartOfInterval(ts, INTERVAL 5 MINUTE) AS bucket,
    count() AS cnt
FROM metrics
WHERE ts >= now() - INTERVAL 1 HOUR
GROUP BY bucket
ORDER BY bucket;
时间列统一用 UTC 或固定时区存储,展示层再转换;函数 toTimeZone 可做时区切换。

易错点

  • toStartOfWeek 的周起点随版本/设置可能变化,关键口径用 toStartOfInterval 显式指定
  • 对时间列做时区换算后再分组会损失分区裁剪能力,尽量在原时区列上过滤

数据来源与参考

  • ClickHouse Docs: Date and time functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌