clickhouse时间函数原创
ClickHouse时间函数在数据分析及开发中应用十分广泛。
具体可在官网查看,这里列举部分常用函数进行示例学习。
# 1. 常用基本函数
- unit:second、minute、hour、day、month、year
用途 | 函数 | 备注 |
---|---|---|
当前时间 | now() | 2024-11-06 17:22:07.000 |
当前时间UTC | now('UTC') | 2024-11-06 09:22:07.000 |
当天 | today() | 2024-11-06 |
昨天 | yesterday() | 2024-11-05 |
时间增加 | date_add( unit , value, date) | 添加正负数都支持 |
时间减少 | date_sub( unit , value, date) | 减少正负数都支持 |
计算时间间隔 | date_diff( unit , startdate, enddate) | |
字符串转时间 | toDateTime(date_str) |
-- 例1:本月第一天
select toStartOfMonth(today());
-- 例2:本月最后一天
select date_add(MONTH, 1, toStartOfMonth(today()))-1;
1
2
3
4
2
3
4
# 2. 格式化时间
- formatDateTime(Time, Format)
用途 | 函数 | 备注 |
---|---|---|
toYYYYMMDD(today()) | 20241106 | |
formatDateTime(now(), '%Y-%m-%d') | 2024-11-06 | |
时间戳格式化 | fromUnixTimestamp(timestamp, format) |
-- 例1:时间戳格式化
select fromUnixTimestamp(toUInt64(1730877596000/1000), '%Y-%m-%d %R:%S');
-- 例2:时间格式化
select formatDateTime(now(), '%Y-%m-%d');
select formatDateTime(now(), '%Y/%m/%d');
-- 例3:获取UTC时间
select now('UTC')
-- 例4:字符串UTC时间转北京时间
select toTimeZone(toDateTime(substring('2024-11-06 08:02:00.000', 1, 19), 'UTC'), 'Asia/Shanghai');
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
修饰符 | 描述 | 示例 |
---|---|---|
%F | 短YYYY-MM-DD日期,相当于%Y-%m-%d | 2018-01-02 |
%R | 24小时HH:MM时间,相当于%H:%M | 22:33 |
%Y | 年 | 2018 |
%m | 月份为十进制数(01-12) | 01 |
%d | 月中的一天,零填充(01-31) | 02 |
%H | 24小时格式(00-23) | 22 |
%i | 分钟(00-59) | 33 |
%S | 秒 (00-59) | 44 |
%e | 月中的一天,空格填充( 1-31) | 2 |
%I | 12小时格式(01-12) | 10 |
%j | 一年中的一天 (001-366) | 002 |
%n | 换行符(") | |
%p | AM或PM指定 | PM |
%Q | 季度(1-4) | 1 |
%T | ISO8601时间格式(HH:MM:SS),相当于%H:%M:%S | 22:33:44 |
%u | ISO8601工作日为数字,星期一为1(1-7) | 2 |
%V | ISO8601周编号(01-53) | 01 |
%w | 工作日为十进制数,周日为0(0-6) | 2 |
%y | 年份,最后两位数字(00-99) | 18 |
%C | 年除以100并截断为整数(00-99) | 20 |
%% | %符号 | % |
- 02
- 2025-03-28拍婚纱照 原创04-02
- 03
- 2024-04-05的晚上 原创04-01