ClickHouse 本身提供了丰富的日期函数,并且所有的函数都支持配置时区。
时区
可以通过下面的 sql 查看目前的时区:
SELECT timezone();
比如,下面演示一个时间字符串,北京时间和伦敦时间的不同。具体时区的表达式可以看这个:List_of_tz_database_time_zones
select toDateTime('2021-08-23 08:00:00') as time,
toDateTime(time,'Asia/Shanghai') as time1,
toDateTime(time,'Europe/London') as time2
toTimeZone 函数可以转换时区。
时间函数
1.当前时间
now() 函数返回当前时间(格林威治标准时间),和北京时间差 8 个小时。
select
now() as `标准时间`,
toTimeZone(now(),'Asia/Shanghai') as `北京时间`
2.时间格式化
formatDateTime() 函数可以格式化日期,返回指定的格式,比如
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