时间类型
云器 Lakehouse 支持四种时间相关类型:DATE、TIMESTAMP、TIMESTAMP_NTZ 和 INTERVAL。
类型对比
| 类型 | 精度 | 时区 | 适用场景 |
|---|
DATE
DATE | 天 | 无时区 | 生日、日期维度、只需年月日的字段 |
TIMESTAMP
TIMESTAMP | 微秒 | 含时区(UTC 存储,显示时转本地) | 跨时区的事件时间、日志时间戳 |
TIMESTAMP_NTZ
TIMESTAMP_NTZ | 微秒 | 无时区(本地时间原样存储) | 本地业务时间、不涉及时区转换的场景 |
INTERVAL
INTERVAL | 可变 | — | 表示时间差,用于日期加减运算 |
TIMESTAMP 与 TIMESTAMP_NTZ 的关键区别(实测):
-- TIMESTAMP:UTC 存储,输入 10:30 北京时间,存为 02:30 UTC
SELECT TIMESTAMP '2024-01-15 10:30:00'; -- 2024-01-15T02:30:00.000Z
-- TIMESTAMP_NTZ:原样存储,不做时区转换
SELECT TIMESTAMP_NTZ '2024-01-15 10:30:00'; -- 2024-01-15T10:30:00.000Z
常用操作示例
-- DATE 加减
SELECT DATE_ADD(DATE '2024-01-15', 10); -- 2024-01-25
SELECT DATEDIFF(DATE '2024-02-01', DATE '2024-01-15'); -- 17
-- INTERVAL 加减
SELECT DATE '2024-01-15' + INTERVAL '10' DAY; -- 2024-01-25
SELECT DATE '2024-01-15' + INTERVAL '2' MONTH; -- 2024-03-15
-- 获取当前时间
SELECT CURRENT_DATE(); -- 当前日期
SELECT CURRENT_TIMESTAMP(); -- 当前时间戳(含时区)
相关文档