StarRocks 提供了丰富的时间转换函数来处理日期和时间数据。以下是常用的时间转换函数分类说明:
1. 基础时间转换函数
函数 | 描述 | 示例 |
FROM_UNIXTIME(unix_timestamp) |
将UNIX时间戳转为DATETIME |
FROM_UNIXTIME(1617184800) → "2021-03-31 12:00:00" |
UNIX_TIMESTAMP(datetime_str) |
将日期时间字符串转为UNIX时间戳 |
UNIX_TIMESTAMP("2021-03-31 12:00:00") → 1617184800 |
TO_DATE(datetime) |
提取日期部分 |
TO_DATE("2021-03-31 12:00:00") → "2021-03-31" |
DATE_FORMAT(datetime, format) |
格式化日期时间 |
DATE_FORMAT(NOW(), '%Y-%m-%d') → "2023-07-20" |
2. 时区转换函数
函数 | 描述 |
CONVERT_TZ(dt, from_tz, to_tz) |
转换时区 |
FROM_UTC_TIMESTAMP(timestamp, timezone) |
从UTC转为指定时区 |
TO_UTC_TIMESTAMP(timestamp, timezone) |
转为UTC时间 |
3. 时间提取函数
函数 | 描述 | 示例 |
YEAR(datetime) |
提取年份 |
YEAR("2021-03-31") → 2021 |
QUARTER(datetime) |
提取季度 |
QUARTER("2021-03-31") → 1 |
MONTH(datetime) |
提取月份 |
MONTH("2021-03-31") → 3 |
DAY(datetime) |
提取日 |
DAY("2021-03-31") → 31 |
HOUR(datetime) |
提取小时 |
HOUR("12:34:56") → 12 |
MINUTE(datetime) |
提取分钟 |
MINUTE("12:34:56") → 34 |
SECOND(datetime) |
提取秒 |
SECOND("12:34:56") → 56 |
4. 时间计算函数
函数 | 描述 | 示例 |
DATE_ADD(datetime, INTERVAL expr unit) |
时间加法 |
DATE_ADD("2021-03-31", INTERVAL 1 DAY) → "2021-04-01" |
DATE_SUB(datetime, INTERVAL expr unit) |
时间减法 |
DATE_SUB("2021-03-31", INTERVAL 1 MONTH) → "2021-02-28" |
DATEDIFF(enddate, startdate) |
计算日期差(天数) |
DATEDIFF("2021-04-01", "2021-03-31") → 1 |
TIMESTAMPDIFF(unit, start, end) |
计算时间差(指定单位) |
TIMESTAMPDIFF(HOUR, "2021-03-31 12:00:00", "2021-03-31 14:30:00") → 2 |
5. 格式化字符串说明
常用格式符号:
符号 | 描述 |
%Y |
四位年份 |
%y |
两位年份 |
%m |
月份(01-12) |
%d |
日(01-31) |
%H |
小时(00-23) |
%i |
分钟(00-59) |
%s |
秒(00-59) |
%T |
时间(HH:MM:SS) |
实际应用示例
StarRocks的时间函数与MySQL兼容,但性能更高,特别适合大规模时间数据的分析处理。