ClickHouse 日期函数

本文介绍了ClickHouse中处理日期和时间的函数,如now()、today()、yesterday()以及addYears、subtractMonths等,还展示了如何进行时间取整、计算日期差以及添加和减去时间间隔的操作。这些函数在数据分析和查询中非常实用。
摘要由CSDN通过智能技术生成

参考链接:什么是ClickHouse? | ClickHouse Docs


-- 当前时间
SELECT now();
-- 返回当前日期(Date)。 其功能与’toDate(now())’相同。
SELECT today();
-- 返回昨天的日期(Date)。 其功能与’today() - 1’相同。
SELECT yesterday();
-- 函数将一段时间间隔添加到Date/DateTime,然后返回Date/DateTime
-- addYears, addMonths, addWeeks, addDays, addHours, addMinutes, addSeconds, addQuarters
SELECT addYears(now(),1);
SELECT addMonths(now(),1);
-- 函数将Date/DateTime减去一段时间间隔,然后返回Date/DateTime
-- subtractYears,subtractMonths,subtractWeeks,subtractDays,subtractours,subtractMinutes,subtractSeconds,subtractQuarters
SELECT subtractYears(now(),1);
SELECT subtractMonths(now(),1);


-- 将DateTime向前取整到当前分钟的开始
SELECT toStartOfMinute(now());
-- 将DateTime向前取整到当前小时的开始。
SELECT toStartOfHour(now());
-- 将DateTime向前取整到今天的开始。
SELECT toStartOfDay(now());
-- 将Date或DateTime向前取整到本月的第一天。 返回Date类型。
SELECT toStartOfMonth(now());
-- 将Date或DateTime向前取整到本周的星期一。 返回Date类型。
SELECT toMonday(now());
-- 获取当前日期是第几周(以周日开始)
SELECT toWeek(now());
-- 获取指定日期是第几周(以周日开始)
SELECT toDate('2023-01-08') AS date, toWeek(date)
-- 获取当前日期是第几周(以周一开始)
SELECT toWeek(now(),1);
-- 获取指定日期是第几周(以周一开始)
SELECT toDate('2023-01-08') AS date, toWeek(date,1)

-- 获取昨天的开始时间 day可替换为:second、minute、hour、day、week、month、quarter、year
SELECT toStartOfDay(date_add(day, -1, now()));
-- 获取上周的开始时间
SELECT formatDateTime(toStartOfWeek(date_sub(week, 1, now()),1),'%F');
-- 获取上周的结束时间
select formatDateTime(date_add(DAY, 7-toDayOfWeek(date_sub(week, 1, now())), date_sub(week, 1, now())),'%F');
-- 返回两个日期或具有时间值的日期之间的差值。
SELECT toDate('2023-01-06') AS startdate,toDate('2023-01-07') AS enddate, date_diff(day, startdate, enddate)
SELECT dateDiff(hour, toDateTime('2023-01-06 22:00:00'), toDateTime('2023-01-07 23:00:00'));
-- 从提供的日期或带时间的日期中减去时间间隔或日期间隔。
SELECT date_sub(week, 1, toDate('2023-05-25'));
-- 将指定的时间值与提供的日期或日期时间值相加。
select timestamp_add(toDate('2023-05-25'), INTERVAL 3 MONTH);
-- 从提供的日期或带时间的日期中减去时间间隔。
select timestamp_sub(MONTH, 5, toDateTime('2023-05-25 01:02:03'));



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ClickHouse提供了许多日期函数来处理日期和时间相关的操作。以下是一些常用的ClickHouse日期函数: 1. `toDate()`函数用于将日期时间字符串转换为日期格式。例如,`toDate('2022-07-13 14:28:33')`将返回日期'2022-07-13'。 2. `toYear()`函数用于提取日期中的年份。例如,`toYear(now())`将返回当前日期的年份'2022'。 3. `toMonth()`函数用于提取日期中的月份。例如,`toMonth(now())`将返回当前日期的月份'7'。 4. `today()`函数返回当天的日期。例如,`today()`将返回'2022-07-13'。 5. `yesterday()`函数返回昨天的日期。例如,`yesterday()`将返回'2022-07-12'。 6. `toQuarter()`函数用于获取当前日期所在的季度。例如,`toQuarter(now())`将返回'3'。 7. `toDayOfMonth()`函数返回当前月份的天数。例如,`toDayOfMonth(now())`将返回'13'。 8. `toDayOfYear()`函数日期转化为天数。例如,`toDayOfYear(now())`将返回'194'。 9. `toDayOfWeek()`函数用于获取日期是星期几。例如,`toDayOfWeek(now())`将返回'3',表示星期三。 10. `toHour()`函数用于提取日期时间中的小时数。例如,`toHour(now())`将返回'14'。 11. `toMinute()`函数用于提取日期时间中的分钟数。例如,`toMinute(now())`将返回'28'。 12. `toSecond()`函数用于提取日期时间中的秒数。例如,`toSecond(now())`将返回'33'。 13. `toStartOfQuarter()`函数用于获取当前季度的第一天日期。例如,`toStartOfQuarter(now())`将返回'2022-07-01'。 14. `toStartOfMinute()`函数用于获取当前分钟的起始时间。例如,`toStartOfMinute(now())`将返回'2022-07-13 14:57:00'。 15. `toStartOfHour()`函数用于获取当前小时的起始时间。例如,`toStartOfHour(now())`将返回'2022-07-13 14:00:00'。 16. `toStartOfDay()`函数用于获取当前天的起始时间。例如,`toStartOfDay(now())`将返回'2022-07-13 00:00:00'。 17. `toStartOfYear()`函数用于获取当前年份的第一天日期。例如,`toStartOfYear(now())`将返回'2022-01-01'。 18. `toStartOfMonth()`函数用于获取当前月份的第一天日期。例如,`toStartOfMonth(now())`将返回'2022-07-01'。 这些函数可以帮助您在ClickHouse中处理和转换日期和时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Clickhouse时间日期函数一文详解+代码展示](https://blog.csdn.net/master_hunter/article/details/125762575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值