ClickHouse 本身提供了丰富的日期函数,并且所有的函数都支持配置时区。

时区

可以通过下面的 sql 查看目前的时区:

  1. SELECT timezone();

截屏2021-08-23 下午4.18.09.png
比如,下面演示一个时间字符串,北京时间和伦敦时间的不同。具体时区的表达式可以看这个:List_of_tz_database_time_zones

  1. select toDateTime('2021-08-23 08:00:00') as time,
  2. toDateTime(time,'Asia/Shanghai') as time1,
  3. toDateTime(time,'Europe/London') as time2

截屏2021-08-23 下午4.24.22.png
toTimeZone 函数可以转换时区。

时间函数

1.当前时间

now() 函数返回当前时间(格林威治标准时间),和北京时间差 8 个小时。

  1. select
  2. now() as `标准时间`,
  3. toTimeZone(now(),'Asia/Shanghai') as `北京时间`

截屏2021-08-23 下午6.11.10.png

2.时间格式化

formatDateTime() 函数可以格式化日期,返回指定的格式,比如

  1. select formatDateTime(now(),'%Y%m%d')

3.

参考

https://blog.csdn.net/u010180815/article/details/105250864
https://clickhouse.tech/docs/zh/sql-reference/functions/date-time-functions/
https://blog.csdn.net/vkingnew/article/details/107618128