clickhouse复杂时间格式的转换方式
作者:阿爵
这篇文章主要介绍了clickhouse复杂时间格式的转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
clickhouse复杂时间格式转换
1.如果只用toDateTime
你需要拼接成一个完全按照YYYY-MM hh:mm:ss格式的字符串给它
否则,它会当你是一个从1970年偏移的毫秒去转换
SELECT 20191231235959 as expire_date, toDateTime(20191231235959), concat(toString(floor(20191231235959/10000000000)), '-', toString(floor((20191231235959%10000000000)/100000000)), '-', toString(floor((20191231235959%100000000)/1000000)), ' ', toString(floor((20191231235959%1000000)/10000)), ':', toString(floor((20191231235959%10000)/100)), ':', toString(floor((20191231235959%10000)/100))) as str, toDateTime(str);
2.也可以这样拼接
toDateTime(concat(substring(toString(watch_end_time), 1, 4), '-', substring(toString(watch_end_time), 5, 2), '-', substring(toString(watch_end_time), 7, 2), ' ', substring(toString(watch_end_time), 9, 2), ':', substring(toString(watch_end_time), 11, 2), ':', substring(toString(watch_end_time), 13, 2))) as wet
3.但你可以使用一个更强大的函数
parseDateTimeBestEffort(toString(20191201000407)) as wet
结果:
wet
2019-12-01 00:04:07
附相关文档:
parseDateTimeBestEffort
将数字类型参数解析为Date或DateTime类型。
与toDate和toDateTime不同,parseDateTimeBestEffort可以进行更复杂的日期格式。
parseDateTimeBestEffortOrNull
与parseDateTimeBestEffort相同,但它遇到无法处理的日期格式时返回null。
parseDateTimeBestEffortOrZero
与parseDateTimeBestEffort相同,但它遇到无法处理的日期格式时返回零Date或零DateTime。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- ClickHouse数据库的监控与运维:监控指标、监控工具、运维策略、故障处理
- clickhouse远程连接以及用户名密码设置方式
- 在docker中搭建部署clickhouse过程
- clickhouse数据库删除数据的五种方式
- clickhouse中Nullable与非空字段的建表与类型互转方式
- 关于clickhouse几种create table的情况
- clickhouse分布式表的操作示例详解
- clickhouse系统表日志清理方式详解
- 数据分析数据库ClickHouse在大数据领域应用实践
- 以示例讲解Clickhouse Docker集群部署以及配置
- ClickHouse在高并发写入场景下的性能优化实践(CPU利用率飙升)
