秒懂ClickHouse: 时间日期函数示例和用法
ClickHouses时间日期函数示例和用法,便于快速理解快速查询;
函数名称  | 解释  | 示例代码  | 结果示例  | 
timeZone  | 获取当前时区  | SELECT timeZone();  | UTC  | 
toTimeZone()  | 将日期时间转换为指定时区  | SELECT toTimeZone('2024-08-19 16:34:46', 'Europe/Moscow');  | 2024-08-19 19:34:46  | 
timeZoneOf()  | 获取日期时间的时区  | SELECT timeZoneOf(toTimeZone('2024-08-19 16:34:46', 'UTC'));  | UTC  | 
timeZoneOffset()  | 获取日期时间的时区偏移  | SELECT timeZoneOffset(toTimeZone('2024-08-19 16:34:46', 'UTC'));  | 0  | 
toYear()  | 获取日期的年份  | SELECT toYear('2024-08-19');  | 2024  | 
toQuarter()  | 获取日期的季度  | SELECT toQuarter('2024-08-19');  | 3  | 
toMonth()  | 获取日期的月份  | SELECT toMonth('2024-08-19');  | 8  | 
toDayOfYear()  | 获取日期是该年的第几天  | SELECT toDayOfYear('2024-08-19');  | 232  | 
toDayOfMonth()  | 获取日期是该月的第几天  | SELECT toDayOfMonth('2024-08-19');  | 19  | 
toDayOfWeek()  | 获取日期是星期几(1 表示周一)  | SELECT toDayOfWeek('2024-08-19');  | 1  | 
toHour()  | 获取日期时间的小时部分  | SELECT toHour('2024-08-19 16:34:46');  | 16  | 
toMinute()  | 获取日期时间的分钟部分  | SELECT toMinute('2024-08-19 16:34:46');  | 34  | 
toSecond()  | 获取日期时间的秒部分  | SELECT toSecond('2024-08-19 16:34:46');  | 46  | 
toUnixTimestamp()  | 将日期时间转换为 Unix 时间戳  | SELECT toUnixTimestamp('2024-08-19 16:34:46');  | 1723988086  | 
toStartOfYear()  | 获取日期所在年份的第一天  | SELECT toStartOfYear('2024-08-19');  | 2024-01-01  | 
toStartOfISOYear()  | 获取日期所在 ISO 年份的第一天  | SELECT toStartOfISOYear('2024-08-19');  | 2024-01-01  | 
toStartOfQuarter()  | 获取日期所在季度的第一天  | SELECT toStartOfQuarter('2024-08-19');  | 2024-07-01  | 
toStartOfMonth()  | 获取日期所在月份的第一天  | SELECT toStartOfMonth('2024-08-19');  | 2024-08-01  | 
toMonday()  | 获取日期所在周的周一  | SELECT toMonday('2024-08-19');  | 2024-08-19  | 
toStartOfWeek(t[,mode])  | 获取日期所在周的第一天(可指定模式)  | SELECT toStartOfWeek('2024-08-19');  | 2024-08-12  | 
toStartOfDay()  | 获取日期的开始时间(00:00:00)  | SELECT toStartOfDay('2024-08-19 16:34:46');  | 2024-08-19 00:00:00  | 
toStartOfHour()  | 获取日期时间的整点  | SELECT toStartOfHour('2024-08-19 16:34:46');  | 2024-08-19 16:00:00  | 
toStartOfMinute()  | 获取日期时间的整分钟  | SELECT toStartOfMinute('2024-08-19 16:34:46');  | 2024-08-19 16:34:00  | 
toStartOfSecond()  | 获取日期时间的整秒  | SELECT toStartOfSecond('2024-08-19 16:34:46');  | 2024-08-19 16:34:46  | 
toStartOfFiveMinutes()  | 获取日期时间的五分钟整点  | SELECT toStartOfFiveMinutes('2024-08-19 16:34:46');  | 2024-08-19 16:30:00  | 
toStartOfTenMinutes()  | 获取日期时间的十分钟整点  | SELECT toStartOfTenMinutes('2024-08-19 16:34:46');  | 2024-08-19 16:30:00  | 
toStartOfFifteenMinutes()  | 获取日期时间的十五分钟整点  | SELECT toStartOfFifteenMinutes('2024-08-19 16:34:46');  | 2024-08-19 16:30:00  | 
toStartOfInterval(time_or_data,间隔x单位[,time_zone])  | 获取日期时间的指定间隔的开始时间  | SELECT toStartOfInterval('2024-08-19 16:34:46', 1, 'hour');  | 2024-08-19 16:00:00  | 
toTime()  | 将日期时间转换为时间类型  | SELECT toTime('2024-08-19 16:34:46');  | 16:34:46  | 
toRelativeYearNum()  | 获取日期的相对年份数  | SELECT toRelativeYearNum('2024-08-19');  | 2024  | 
toRelativeQuarterNum()  | 获取日期的相对季度数  | SELECT toRelativeQuarterNum('2024-08-19');  | 8096  | 
toRelativeMonthNum()  | 获取日期的相对月份数  | SELECT toRelativeMonthNum('2024-08-19');  | 24296  | 
toRelativeWeekNum()  | 获取日期的相对周数  | SELECT toRelativeWeekNum('2024-08-19');  | 3491  | 
toRelativeDayNum()  | 获取日期的相对天数  | SELECT toRelativeDayNum('2024-08-19');  | 127788  | 
toRelativeHourNum()  | 获取日期的相对小时数  | SELECT toRelativeHourNum('2024-08-19 16:34:46');  | 3066919  | 
toRelativeMinuteNum()  | 获取日期的相对分钟数  | SELECT toRelativeMinuteNum('2024-08-19 16:34:46');  | 184015146  | 
toRelativeSecondNum()  | 获取日期的相对秒数  | SELECT toRelativeSecondNum('2024-08-19 16:34:46');  | 11040908786  | 
toISOYear()  | 获取日期的 ISO 年份  | SELECT toISOYear('2024-08-19');  | 2024  | 
toISOWeek()  | 获取日期的 ISO 周数  | SELECT toISOWeek('2024-08-19');  | 34  | 
toWeek(date[,mode])  | 获取日期的周数(可指定模式)  | SELECT toWeek('2024-08-19');  | 34  | 
toYearWeek(date[,mode])  | 获取日期的年份和周数(可指定模式)  | SELECT toYearWeek('2024-08-19');  | 2024-34  | 
date_trunc  | 截断日期到指定的时间单位  | SELECT date_trunc('day', '2024-08-19 16:34:46');  | 2024-08-19 00:00:00  | 
date_add  | 添加指定时间单位的时间间隔  | SELECT date_add('day', 5, '2024-08-19');  | 2024-08-24  | 
date_diff  | 计算两个日期之间的时间间隔  | SELECT date_diff('day', '2024-08-19', '2024-08-24');  | 5  | 
date_sub  | 减去指定时间单位的时间间隔  | SELECT date_sub('day', 5, '2024-08-19');  | 2024-08-14  | 
timestamp_add  | 添加指定时间单位的时间间隔(时间戳)  | SELECT timestamp_add('day', 5, 1723988086);  | 1724440086  | 
timestamp_sub  | 减去指定时间单位的时间间隔(时间戳)  | SELECT timestamp_sub('day', 5, 1723988086);  | 1723536086  | 
today  | 获取当前日期  | SELECT today();  | 2024-08-19  | 
yesterday  | 获取昨天的日期  | SELECT yesterday();  | 2024-08-18  | 
timeSlot  | 将时间戳转换为最近的整点  | SELECT timeSlot('2024-08-19 16:34:46', 300);  | 2024-08-19 16:30:00  | 
toYYYYMM  | 将日期转换为 YYYYMM 格式  | SELECT toYYYYMM('2024-08-19');  | 202408  | 
toYYYYMMDD  | 将日期转换为 YYYYMMDD 格式  | SELECT toYYYYMMDD('2024-08-19');  | 20240819  | 
toYYYYMMDDhhmmss  | 将日期时间转换为 YYYYMMDDhhmmss 格式  | SELECT toYYYYMMDDhhmmss('2024-08-19 16:34:46');  | 20240819163446  | 
addYears  | 添加指定的年数  | SELECT addYears('2024-08-19', 2);  | 2026-08-19  | 
addMonths  | 添加指定的月数  | SELECT addMonths('2024-08-19', 2);  | 2024-10-19  | 
addWeeks  | 添加指定的周数  | SELECT addWeeks('2024-08-19', 2);  | 2024-09-02  | 
addDays  | 添加指定的天数  | SELECT addDays('2024-08-19', 2);  | 2024-08-21  | 
addHours  | 添加指定的小时数  | SELECT addHours('2024-08-19 16:34:46', 2);  | 2024-08-19 18:34:46  | 
addMinutes  | 添加指定的分钟数  | SELECT addMinutes('2024-08-19 16:34:46', 2);  | 2024-08-19 16:36:46  | 
addSeconds  | 添加指定的秒数  | SELECT addSeconds('2024-08-19 16:34:46', 2);  | 2024-08-19 16:34:48  | 
addQuarters  | 添加指定的季度数  | SELECT addQuarters('2024-08-19', 2);  | 2025-02-19  | 
subtractYears  | 减去指定的年数  | SELECT subtractYears('2024-08-19', 2);  | 2022-08-19  | 
subtractMonths  | 减去指定的月数  | SELECT subtractMonths('2024-08-19', 2);  | 2024-06-19  | 
subtractWeeks  | 减去指定的周数  | SELECT subtractWeeks('2024-08-19', 2);  | 2024-08-05  | 
subtractDays  | 减去指定的天数  | SELECT subtractDays('2024-08-19', 2);  | 2024-08-17  | 
subtractHours  | 减去指定的小时数  | SELECT subtractHours('2024-08-19 16:34:46', 2);  | 2024-08-19 14:34:46  | 
subtractMinutes  | 减去指定的分钟数  | SELECT subtractMinutes('2024-08-19 16:34:46', 2);  | 2024-08-19 16:32:46  | 
subtractSeconds  | 减去指定的秒数  | SELECT subtractSeconds('2024-08-19 16:34:46', 2);  | 2024-08-19 16:34:44  | 
subtractQuarters  | 减去指定的季度数  | SELECT subtractQuarters('2024-08-19', 2);  | 2024-02-19  | 
timeSlots  | 将时间戳转换为指定大小的时间槽  | SELECT timeSlots('2024-08-19 16:34:46', 300);  | 2024-08-19 16:30:00  | 
formatDateTime  | 格式化日期时间  | SELECT formatDateTime('2024-08-19 16:34:46', '%Y-%m-%d %H:%M:%S');  | 2024-08-19 16:34:46  | 
dateName  | 获取日期的指定部分(如年份、月份等)  | SELECT dateName('month', '2024-08-19');  | August  | 
FROM_UNIXTIME  | 将 Unix 时间戳转换为日期时间  | SELECT FROM_UNIXTIME(1723988086);  | 2024-08-19 16:34:46  | 
toModifiedJulianDay  | 将日期转换为修改后的儒略日  | SELECT toModifiedJulianDay('2024-08-19');  | 60215  | 
toModifiedJulianDayOrNull  | 将日期转换为修改后的儒略日(如果无效则返回 NULL)  | SELECT toModifiedJulianDayOrNull('invalid-date');  | NULL  | 
fromModifiedJulianDay  | 将修改后的儒略日转换为日期  | SELECT fromModifiedJulianDay(60215);  | 2024-08-19  | 
fromModifiedJulianDayOrNull  | 将修改后的儒略日转换为日期(如果无效则返回 NULL)  | SELECT fromModifiedJulianDayOrNull(0);  | NULL  | 
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
 - Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
 - Spring Boot+Pinot实战:毫秒级实时竞价系统构建
 - SpringBoot敏感配置项加密与解密实战
 - SpringBoot 注解最全详解,建议收藏!
 - Spring Boot 常用注解大全:从入门到进阶
 - SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
 - Springboot集成Kafka原理_spring集成kafka的原理
 - Spring Boot中@Data注解的深度解析与实战应用
 - 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
 
