ClickHouse如何将toYYYYMMDD返回的整数转换回Date/DateTime类型
解决方案
你可以用以下两种常用方案完成转换,性能差异极小,日常场景任选即可:
方案1:直接使用内置parseDateTimeBestEffort函数(最便捷)
ClickHouse的自动日期解析函数原生支持识别YYYYMMDD格式的整数:
-- 转换为Date类型 SELECT toDate(parseDateTimeBestEffort(20211112)); -- 转换为DateTime类型 SELECT parseDateTimeBestEffort(20211112);
执行结果示例:
┌─toDate(parseDateTimeBestEffort(20211112))─┐ │ 2021-11-12 │ └───────────────────────────────────────────┘
方案2:转字符串后强转(兼容性更好,适配低版本)
如果你的ClickHouse版本较老,先把整数转成字符串,再用日期转换函数直接解析即可,ClickHouse原生支持YYYYMMDD格式的字符串输入:
-- 转换为Date类型 SELECT toDate(toString(20211112)); -- 转换为DateTime类型 SELECT toDateTime(toString(20211112));
内容的提问来源于stack exchange,提问作者Alexey P.
相关产品推荐
相关产品推荐

